12/09/2019, 14:11

Hàm map() trong Python

Hàm map() tích hợp sẵn trong Python có tác dụng duyệt tất cả các phần tử của một iterable (list, tuple, dictionary...) qua một hàm cho trước và trả về một list kết quả sau khi thực thi. Vậy cú pháp của hàm map() như thế nào, nó có những tham số gì và cách sử dụng ra sao? Mời bạn đọc theo ...

Hàm map() tích hợp sẵn trong Python có tác dụng duyệt tất cả các phần tử của một iterable (list, tuple, dictionary...) qua một hàm cho trước và trả về một list kết quả sau khi thực thi.

Vậy cú pháp của hàm map() như thế nào, nó có những tham số gì và cách sử dụng ra sao? Mời bạn đọc theo dõi.

Cú pháp hàm map() trong Python

map(function, iterable, ...)

Các tham số của hàm map()

  • function: Hàm thực thi cho từng phần tử trong iterable.
  • iterable: một list, tuple, dictionary... muốn duyệt.

Bạn có thể truyền nhiều iterablecho hàm map().

Giá trị trả về từ map()

Hàm map() duyệt tất cả các phần tử của iterable qua function và trả về một list kết quả sau khi thực thi.

Giá trị trả về từ map() được gọi là map object. Đối tượng này có thể được truyền vào các hàm list() (để tạo list trong Python), hay set() (để tạo một set các phần tử mới)...

Ví dụ 1: map() hoạt động như thế nào?

def binhphuong(n):
   return n*n
 
 # viet boi Quantrimang.com
 number = (25, 100, 225, 400)
 ketqua = map(binhphuong, number)
 
 # chuyen map object thanh list
 print(list(ketqua))

Khi bạn chạy chương trình, output trả về sẽ là:

[25, 100, 225, 400]

Ở ví dụ trên, mỗi phần tử trong tuple ban đầu đều được bình phương lên.

Ví dụ 2: Cách sử dụng hàm lambda với map()

Vì map() luôn cần tham số để truyền vào, vậy nên các hàm lambda thường xuyên được sử dụng với map().

Trong Python, hàm lambda hay hàm vô danh được định nghĩa mà không có tên. Nếu các hàm bình thường được định nghĩa bằng cách sử dụng từ khóa def, thì hàm vô danh được định nghĩa bằng cách sử dụng từ khóa lambda. 

Đọc thêm: Hàm vô danh, Lambda trong Python.

# viet boi Quantrimang.com
 number = (5, 10, 15, 20)
 result = map(lambda x: x*x, number)
 
 # chuyen map object thanh list
 sobinhphuong = list(result)
 print(sobinhphuong)

Chạy chương trình, kết quả trả về là:

[25, 100, 225, 400]

Kết quả không khác gì ví dụ 1.

Ví dụ 3: Truyền nhiều tham số iterator vào map() sử dụng lambda

Trong ví dụ này, các phần tử tương ứng của hai danh sách được thêm vào.

num1 = [4, 5, 6]
 num2 = [5, 6, 7]
 
 result = map(lambda n1, n2: n1+n2, num1, num2)
 print(list(result))

Kết quả trả về là:

[9, 11, 13]
0