Hàm map() trong Python

Hàm map() trong Python là gì?

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. Hàm này được sử dụng khi bạn muốn áp dụng một hàm chuyển đổi duy nhất cho tất cả các phần tử iterable. Iterable và hàm được truyền dưới dạng đối số cho map trong Python.

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à:

[625, 10000, 50625, 160000]

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

Ví dụ 4: Sử dụng cho vòng lặp

num = [3, 5, 7, 11, 13]
mul = []

for n in num:
    mul.append(n ** 2)
print (mul)

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

Sử dụng cho vòng lặp

Ví dụ 5: Sử dụng map() với len()

Trong đoạn code này, bạn phải sử dụng hàm Python len() cùng với map() để tìm độ dài của một số từ.

example = ["Welcome", "to", "Simplilearn"]
x = list(map(len, example))
print(x)

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

Sử dụng map() với len()

Ví dụ 6: Sử dụng map trong Python với math.sqrt()

Trong chương trình bên dưới, trước tiên bạn sẽ nhập thư việnmath để sử dụng hàm math.sqrt() với map trong Python.

import math
num = [9, 36, 49, 81, 121]
x = list(map(math.sqrt, num))
print(x)

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

Sử dụng map trong Python với math.sqrt()

Trong bài viết này, bạn đã tìm hiểu về hàm map() trong Python. Bạn đã xem một số ví dụ để hiểu hàm này hoạt động như thế nào với nhiều hàm và iterable khác nhau. Một số điểm chính cần nhớ là hàm map() trong Python được sử dụng để áp dụng một hàm chuyển đổi cho toàn bộ iterable. Ngoài ra, bạn có thể chuyển nhiều iterable vào một hàm map(). Nếu muốn tìm hiểu thêm về iterable, map hoặc các khái niệm lập trình Python cơ bản khác, bạn có thể chọn tham gia Khóa học cấp chứng chỉ Python trực tuyến của Simplilearn.

Mặt khác, nếu bạn quan tâm đến việc học ngành Khoa học dữ liệu, bạn có thể chọn tham gia Khóa học cấp chứng chỉ về Khoa học dữ liệu với Python. Cả hai khóa học đều cung cấp kinh nghiệm thực hành về ứng dụng để giúp bạn vượt trội trong các lĩnh vực liên quan.

Xem thêm: Các hàm Python tích hợp sẵn

Thứ Ba, 30/08/2022 17:48
3,711 👨 33.781
1 Bình luận
Sắp xếp theo
  • Long Đinh
    Long Đinh ví dụ 1 kết quả bị sai ad ơi: number = (25, 100, 225, 400) thì kết quả sẽ là bình phương các số này mới đúng. [625, 10000, 50625, 160000]
    Thích Phản hồi 12:24 08/03
    • Ahihi
      Ahihi

      Cảm ơn bạn đã phát hiện, mình sửa ùi nha ^^

      Thích Phản hồi 14:12 05/04