Python hàm map() với EXAMPLES

Python map() áp dụng một hàm trên tất cả các mục của một trình vòng lặp được cung cấp làm đầu vào. Ví dụ, một trình vòng lặp có thể là một danh sách, một bộ dữ liệu, một tập hợp, một từ điển, một chuỗi và nó trả về một đối tượng bản đồ có thể lặp lại. Python map() là một hàm tích hợp sẵn.

cú pháp

map(function, iterator1,iterator2 ...iteratorN)

Thông số

Đây là hai điều quan trọng

  • hàm: Một hàm bắt buộc được cung cấp cho bản đồ, hàm này sẽ được áp dụng cho tất cả các mục có sẵn trong trình vòng lặp.
  • iterator: Một đối tượng bắt buộc có thể lặp lại. Nó có thể là một danh sách, một bộ dữ liệu, v.v. Bạn có thể chuyển nhiều đối tượng lặp cho hàm map().

Trở lại giá trị

Hàm map() sẽ áp dụng hàm đã cho trên tất cả các mục bên trong iterator và trả về một đối tượng bản đồ có thể lặp lại, tức là một bộ dữ liệu, một danh sách, v.v.

Hàm map() hoạt động như thế nào?

Hàm map() lấy hai đầu vào làm hàm và một đối tượng có thể lặp. Hàm được cấp cho map() là một hàm bình thường và nó sẽ lặp qua tất cả các giá trị có trong đối tượng lặp đã cho.

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ả đầu ra, chúng ta cần hàm trả về bình phương của số đã cho. Chức năng sẽ như sau:

def square(n):
	return n*n

Danh sách các mục mà chúng ta muốn tìm hình vuô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 python map() để lấy bình phương của từng mục 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]

Đầu ra của hàm map(), như được thấy ở đầu ra, là một đối tượng bản đồ được hiển thị trên màn hình dưới dạng .

Bạn sẽ phải lặp lại đầu ra từ bản đồ bằng vòng lặp for hoặc sử dụng phương thức list() để có đầu ra 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ể lấy bình phương của mỗi số. Danh sách được cung cấp cho bản đồ là [2,3,4,5,6,7,8,9] và sử dụng hàm Square() thì kết quả đầu ra từ map() chúng tôi 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 mục trong danh sách. Ví dụ: biến my_list và cập nhật danh sách theo bình phương của mỗi số. Đầu ra được lưu trữ trong biến update_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 Python. Trong ví dụ, chúng ta sẽ sử dụng Python round() hàm dựng sẵn làm tròn các giá trị đã cho.

Ví dụ:

Danh sách mà tôi có là my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] .

Tôi cần các giá trị làm tròn cho từng mục có trong danh sách. Chúng ta sẽ sử dụng round() làm hàm cho 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 mục trong danh sách và trả về một danh sách có tất cả các giá trị được làm tròn như hiển thị ở đầ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 Python, một chuỗi hoạt động giống như một mảng nên chúng ta có thể dễ dàng sử dụng nó bên trong map().

Trong ví dụ này, chúng ta có hàm myMapFunc() đảm nhiệm việc chuyển đổi chuỗi đã cho thành chữ hoa. Hàm myMapFunc() được gán cho hàm map(). Hàm bản đồ sẽ đảm nhiệm việc chuyển đổi chuỗi đã cho thành chữ hoa bằng cách chuyển chuỗi đó sang 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 bản đồ() với danh sách Numbers

Để làm việc với danh sách trong map() sẽ lấy 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 tôi 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 được đưa ra để ánh xạ 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 là

nhân với 10.

Sử dụng bản đồ() với Tuple

Một tuple là một đối tượng trong Python có các mục được phân cách bằng dấu phẩy và được đặt trong dấu ngoặc tròn. Trong ví dụ, chúng ta sẽ lấy một tuple có các giá trị chuỗi. Hàm mà chúng ta sẽ sử dụng sẽ chuyển đổi các giá trị được cung cấp 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']

Đầu ra chúng ta nhận được là một bộ dữ liệu ngược với tất cả các giá trị trong đó được chuyển 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 cách sử dụ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 cho thấy cách hoạt động của trình lặp từ điển bên trong 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

Đặt vào Python là một tập hợp các mục không có thứ tự 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().

Đây là một ví dụ hoạt động về việc sử dụng set làm trình vòng lặp bên trong 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.

Vì vậy, trong ví dụ này, chúng ta sẽ sử dụng hàm lambda bên trong 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 vòng lặp bên trong hàm map()

Ví dụ 1: Truyền hai vòng lặp danh sách cho map()

Bạn có thể gửi nhiều hơn một iterator, tức là một danh sách, một bộ dữ liệu, v.v. cùng lúc tới hàm map().

Ví dụ: nếu bạn muốn thêm hai danh sách. Điều tương tự có thể được thực hiện 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, mục đầu tiên trong my_list1 được thêm vào mục đầu tiên của my_list2. Hàm myMapFunc() nhận các mục của my_list1 và my_list2 rồi trả về tổng của cả hai.

Đây là ví dụ hoạt động về việc thêm hai danh sách đã cho bằ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 trình vòng lặp danh sách cho map()

Chúng ta sẽ sử dụng một danh sách và một bộ lặp tuple trong hàm map(). Hàm được cung cấp cho bản đồ - myMapFunc() sẽ lấy các mục từ danh sách và Tuple. Các mục sẽ được nối với nhau bằng dấu gạch dưới (_). Ví dụ hoạt động như dưới đây:

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']

Tổng kết

  • Python map() là một hàm dựng sẵn áp dụng một hàm trên tất cả các mục của một trình vòng lặp được cung cấp làm đầu vào. Ví dụ, một trình vòng lặp có thể là một danh sách, một bộ dữ liệu, một chuỗi, v.v. và nó trả về một đối tượng bản đồ có thể lặp lại.
  • Hàm map() sẽ áp dụng hàm đã cho trên tất cả các mục bên trong iterator và trả về một đối tượng bản đồ có thể lặp lại, tức là một bộ dữ liệu, một danh sách, v.v.
  • 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 Python.
  • Một tuple là một đối tượng trong Python có các mục được phân cách bằng dấu phẩy và được đặt trong dấu ngoặc tròn. Trong ví dụ sẽ lấy một tuple có các giá trị chuỗi. Hàm mà chúng ta sẽ sử dụng sẽ chuyển đổi các giá trị được cung cấp thành chữ hoa.
  • Một 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().
  • Đặt vào Python là một tập hợp các mục không có thứ tự 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().
  • In Python, biểu thức lambda (hoặc biểu mẫu lambda) được sử dụng để xây dựng các hàm ẩn danh. Vì vậy, từ khóa lambda phải được sử dụng khi bạn muốn sử dụng lambda bên trong map().
  • Bạn có thể gửi nhiều hơn một iterator, tức là một danh sách, một bộ dữ liệu tới hàm map().