Python Hàm map() với các ví dụ
⚡ Tóm tắt thông minh
Python Hàm `map()` áp dụng một hàm nhất định cho mọi phần tử của một đối tượng có thể lặp lại như danh sách, bộ dữ liệu, tập hợp, từ điển hoặc chuỗi. Nó trả về một đối tượng `map` lười biếng mà bạn có thể chuyển đổi bằng hàm `list()` hoặc lặp lại bằng vòng lặp.

cú pháp
map(function, iterator1,iterator2 ...iteratorN)
Thông số Kỹ thuật
Dưới đây là hai thông số quan trọng:
- chức năng: Một hàm bắt buộc phải được cung cấp cho hàm map(), hàm này sẽ được áp dụng cho tất cả các phần tử có sẵn trong trình lặp.
- vòng lặp: Một đối tượng lặp bắt buộc. Nó có thể là một danh sách, một bộ dữ liệu, v.v. Bạn có thể truyền nhiều đối tượng lặp cho hàm map().
Trở lại giá trị
Hàm map() áp dụng hàm đã cho lên tất cả các phần tử bên trong iterator và trả về một đối tượng map có thể lặp lại, tức là một tuple, một list, v.v.
Hàm map() hoạt động như thế nào?
Hàm map() nhận hai tham số đầu vào: một hàm và một đối tượng có thể lặp lại. Hàm được truyền cho map() là một hàm thông thường, và nó sẽ lặp lại tất cả các giá trị có trong đối tượng có thể lặp lại đó.
Ví dụ: giả sử bạn có một danh sách các số và bạn muốn tìm bình phương của mỗi số đó.
Để có được kết quả, chúng ta cần một hàm trả về bình phương của số đã cho. Hàm đó như sau:
def square(n): return n*n
Danh sách các mục mà chúng ta muốn tìm bình phương của chúng như sau:
my_list = [2,3,4,5,6,7,8,9]
Bây giờ chúng ta hãy sử dụng hàm tích hợp map() để lấy bình phương của từng phần tử trong my_list.
Mã cuối cùng như sau:
def square(n): return n*n my_list = [2,3,4,5,6,7,8,9] updated_list = map(square, my_list) print(updated_list) print(list(updated_list))
Đầu ra:
<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]
Như đã thấy ở trên, kết quả đầu ra của hàm map() là một đối tượng bản đồ được hiển thị trên màn hình. .
Bạn sẽ phải lặp lại kết quả từ hàm map() bằng vòng lặp for hoặc phương thức list() để có được kết quả cuối cùng. Tôi đã sử dụng list() trong mã để hiển thị các giá trị bên trong danh sách đã cho.
Vì vậy, bằng cách sử dụng hàm map(), chúng ta có thể tính bình phương của mỗi số. Danh sách được cung cấp cho map() là [2,3,4,5,6,7,8,9], và sử dụng hàm square(), kết quả chúng ta nhận được là [4, 9, 16, 25, 36, 49, 64, 81].
Hàm map() áp dụng hàm square() cho tất cả các phần tử trong danh sách. Ví dụ, nó nhận biến my_list và cập nhật danh sách với bình phương của mỗi số. Kết quả được lưu trữ trong biến updated_list.
Sử dụng bản đồ() với Python Chức năng tích hợp sẵn
Python Hàm map() là một hàm có sẵn và cũng có thể được sử dụng cùng với các hàm có sẵn khác trong PythonTrong ví dụ này, chúng ta sẽ sử dụng... Python Hàm tích hợp round() dùng để làm tròn các giá trị đã cho.
Ví dụ:
Tôi có một danh sách là my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Tôi cần làm tròn giá trị của từng mục trong danh sách, vì vậy chúng ta sẽ sử dụng hàm round() để ánh xạ tới (map()).
my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] updated_list = map(round, my_list) print(updated_list) print(list(updated_list))
Đầu ra:
<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]
Hàm round() được áp dụng cho tất cả các phần tử trong danh sách và trả về một danh sách với tất cả các giá trị đã được làm tròn, như hiển thị trong kết quả đầu ra.
Sử dụng map() với một chuỗi làm trình vòng lặp
Chúng ta cũng có thể sử dụng map() trên một chuỗi. TRONG PythonChuỗi ký tự hoạt động giống như một mảng, vì vậy chúng ta có thể dễ dàng sử dụng nó bên trong hàm map().
Trong ví dụ này, chúng ta có một hàm `myMapFunc()` đảm nhiệm việc chuyển đổi chuỗi đã cho thành chữ hoa. Hàm `myMapFunc()` được truyền cho hàm `map()`. Hàm `map()` sẽ thực hiện việc chuyển đổi chuỗi đã cho thành chữ hoa bằng cách truyền chuỗi đó cho `myMapFunc()`.
def myMapFunc(s): return s.upper() my_str = "welcome to guru99 tutorials!" updated_list = map(myMapFunc, my_str) print(updated_list) for i in updated_list: print(i, end="")
Đầu ra:
<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!
Sử dụng map() với một danh sách Numbers
Để làm việc với danh sách trong map(), chúng ta sẽ lấy một danh sách các số và nhân mỗi số trong danh sách đó với 10.
Danh sách mà chúng ta sẽ sử dụng là [2,3,4,5,6,7,8,9]. Hàm myMapFunc() đảm nhiệm việc nhân số đã cho với 10. Hàm này được truyền cho hàm map() cùng với danh sách.
Ví dụ:
def myMapFunc(n): return n*10 my_list = [2,3,4,5,6,7,8,9] updated_list = map(myMapFunc, my_list) print(updated_list) print(list(updated_list))
Đầu ra:
<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]
Kết quả chúng ta thấy là mỗi số trong danh sách đều được nhân với 10.
Sử dụng bản đồ() với Tuple
Một tuple là một đối tượng trong Python Đó là một bộ dữ liệu gồm các phần tử được phân tách bằng dấu phẩy và nằm trong dấu ngoặc tròn. Trong ví dụ này, chúng ta sẽ lấy một bộ dữ liệu với các giá trị chuỗi. Hàm mà chúng ta sẽ sử dụng sẽ chuyển đổi các giá trị đã cho thành chữ hoa.
Ví dụ:
def myMapFunc(n): return n.upper() my_tuple = ('php','java','python','c++','c') updated_list = map(myMapFunc, my_tuple) print(updated_list) print(list(updated_list))
Đầu ra:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Kết quả nhận được là một bộ giá trị (tuple) với tất cả các giá trị bên trong đã được chuyển đổi thành chữ hoa.
Sử dụng bản đồ() với Từ điển
A từ điển trong Python được tạo bằng dấu ngoặc nhọn ({}). Vì từ điển là một trình lặp, bạn có thể sử dụng nó bên trong hàm map(). Bây giờ chúng ta hãy sử dụng một từ điển như một trình lặp bên trong hàm map().
Ví dụ sau đây minh họa cách hoạt động của một trình lặp từ điển bên trong hàm map():
def myMapFunc(n): return n*10 my_dict = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_dict) print(finalitems) print(list(finalitems))
Đầu ra:
<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Sử dụng bản đồ() với Set
Một bộ trong Python là một tập hợp các mục không có thứ tự nằm trong dấu ngoặc nhọn ({}). Vì set() cũng là một trình lặp, bạn có thể sử dụng nó bên trong hàm map().
Dưới đây là một ví dụ thực tế về việc sử dụng một tập hợp làm trình lặp bên trong hàm map():
def myMapFunc(n): return n*10 my_set = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_set) print(finalitems) print(list(finalitems))
Đầu ra:
<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Sử dụng bản đồ() với hàm Lambda
In Python, biểu thức lambda được sử dụng để xây dựng các hàm ẩn danh. Bạn sẽ phải sử dụng từ khóa lambda giống như bạn sử dụng def để xác định các hàm thông thường.
Trong ví dụ này, chúng ta sẽ sử dụng hàm lambda bên trong hàm map(). Hàm lambda sẽ nhân mỗi giá trị trong danh sách với 10.
Ví dụ:
my_list = [2,3,4,5,6,7,8,9] updated_list = map(lambda x: x * 10, my_list) print(updated_list) print(list(updated_list))
Đầu ra:
<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]
Sử dụng nhiều trình lặp bên trong hàm map()
Ví dụ 1: Truyền hai iterator danh sách cho hàm map()
Bạn có thể gửi nhiều hơn một iterator, ví dụ như một danh sách, một tuple, v.v., cùng một lúc đến hàm map().
Ví dụ, nếu bạn muốn cộng hai danh sách, bạn có thể thực hiện điều tương tự bằng cách sử dụng hàm map(). Chúng ta sẽ sử dụng hai danh sách, my_list1 và my_list2.
Trong ví dụ bên dưới, phần tử đầu tiên trong my_list1 được cộng với phần tử đầu tiên của my_list2. Hàm myMapFunc() nhận vào các phần tử của my_list1 và my_list2 và trả về tổng của cả hai.
Dưới đây là ví dụ thực tế về việc cộng hai danh sách cho trước bằng cách sử dụng hàm map().
def myMapFunc(list1, list2): return list1+list2 my_list1 = [2,3,4,5,6,7,8,9] my_list2 = [4,8,12,16,20,24,28] updated_list = map(myMapFunc, my_list1,my_list2) print(updated_list) print(list(updated_list))
Đầu ra:
<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]
Ví dụ 2: Truyền một Tuple và một iterator danh sách cho hàm map()
Chúng ta sẽ sử dụng một danh sách và một bộ lặp trong hàm map(). Hàm được truyền cho map(), myMapFunc(), sẽ lấy các phần tử từ danh sách và bộ lặp. Các phần tử sẽ được nối với nhau bằng dấu gạch dưới (_). Ví dụ hoạt động được hiển thị bên dưới:
def myMapFunc(list1, tuple1): return list1+"_"+tuple1 my_list = ['a','b', 'b', 'd', 'e'] my_tuple = ('PHP','Java','Python','C++','C') updated_list = map(myMapFunc, my_list,my_tuple) print(updated_list) print(list(updated_list))
Đầu ra:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']
