Trong Python, hàm map() được sử dụng để áp dụng một hàm cho từng phần tử trong một iterable (có thể là list, tuple, set, v.v.) và trả về một iterable mới chứa các kết quả. Cú pháp của hàm map() như sau:
map(function, iterable)
Ở đây, function
là một hàm được áp dụng cho từng phần tử trong iterable
.
Dưới đây là một số ví dụ minh họa cho hàm map() trong Python:
Ví dụ 1: Tính bình phương của từng phần tử trong một list
# Tính bình phương của từng phần tử trong list
numbers = [1, 2, 3, 4, 5]
squares = map(lambda x: x**2, numbers)
print(list(squares)) # Output: [1, 4, 9, 16, 25]
Ở đây, hàm lambda x: x**2
tính bình phương của mỗi phần tử trong list numbers
.
Ví dụ 2: Chuyển đổi các chuỗi thành chữ in hoa
# Chuyển đổi các chuỗi thành chữ in hoa
words = ["hello", "world", "python"]
upper_words = map(str.upper, words)
print(list(upper_words)) # Output: ['HELLO', 'WORLD', 'PYTHON']
Ở đây, hàm str.upper()
được sử dụng để chuyển đổi mỗi chuỗi thành chữ in hoa.
Ví dụ 3: Tính tổng hai list
# Tính tổng hai list
list1 = [1, 2, 3, 4]
list2 = [10, 20, 30, 40]
sum_list = map(lambda x, y: x + y, list1, list2)
print(list(sum_list)) # Output: [11, 22, 33, 44]
Ở đây, hàm lambda x, y: x + y
được sử dụng để tính tổng của từng cặp phần tử trong hai list list1
và list2
.
Khi nào nên dùng hàm Map ?
- Thực hiện một thao tác trên từng phần tử trong một iterable và trả về một iterable mới chứa kết quả. Ví dụ: tính bình phương của từng phần tử trong một list, chuyển đổi các chuỗi thành chữ in hoa, v.v.
- Khi bạn cần thực hiện một phép toán trên hai hay nhiều iterable và trả về một iterable mới chứa kết quả. Ví dụ: tính tổng hai list, lấy phần tử đầu tiên từ mỗi list, v.v.
- Khi bạn muốn tăng tính hiệu quả và giảm thời gian xử lý bằng cách tránh sử dụng vòng lặp.
Tuy nhiên, nên cẩn thận khi sử dụng map()
để tránh lạm dụng và làm giảm khả năng đọc và hiểu mã của bạn. Trong một số trường hợp, sử dụng vòng lặp thay vì map()
có thể dễ hiểu hơn và dễ bảo trì hơn.