Hàm map trong Python

Hướng dẫn chi tiết hàm map trong Python

21
  1. Định nghĩa hàm map trong Python
  2. Cách hoạt động của map()
  3. Dùng map() với lambda
  4. Ví dụ chuyển kiểu dữ liệu bằng map()
  5. Ứng dụng thực tế của map()
  6. So sánh map() và vòng lặp for
  7. Khi nào nên dùng map()
  8. Video thực hành hàm map trong python

1. Định nghĩa hàm map trong Python

Hàm map() dùng để áp dụng một hàm lên từng phần tử của một danh sách (hoặc iterable khác) và trả về kết quả mới.

Cú pháp hàm map:

map(function, iterable)

Trong đó:

  • function: hàm cần áp dụng cho từng phần tử
  • iterable: dữ liệu lặp được như list, tuple, string

Hàm map() không trả về list ngay mà trả về một đối tượng map object, thường cần đổi sang list bằng hàm list().

2. Cách hoạt động của map()

map sẽ lấy từng phần tử trong danh sách, đưa vào hàm, rồi tạo ra kết quả mới.

Ví dụ nhân đôi từng số:

Có biến data = [1, 2, 3, 4]

Yêu cầu: nhân đôi giá trị các phần tử trong biến list

Dùng cách truyền thống

def nhan_doi(x):
    return x * 2
data = [1, 2, 3, 4]
kq = []
for x in data:
    kq.append(nhan_doi(x))
print(kq)

Dùng cách map python

def nhan_doi(x):
    return x * 2
data = [1, 2, 3, 4]
kq = list(map(nhan_doi, data))
print(kq)

Kết quả:

[2, 4, 6, 8]

Giải thích:

  • 1 → 2
  • 2 → 4
  • 3 → 6
  • 4 → 8

3. Dùng map() với lambda

Thường người ta kết hợp map + lambda để viết ngắn gọn.

Ví dụ:

data = [1, 2, 3, 4]
kq = list(map(lambda x: x * 3, data))
print(kq)

Kết quả:

[3, 6, 9, 12]

Giải thích: lambda tạo hàm nhanh, lấy x rồi nhân 3.

4. Ví dụ chuyển kiểu dữ liệu bằng map()

Chuyển danh sách chuỗi thành số nguyên.

data = ["10", "20", "30"]
nums = list(map(int, data))
print(nums)

Kết quả:

[10, 20, 30]

Giải thích:

  • "10" → 10
  • "20" → 20
  • "30" → 30

5. Ứng dụng thực tế của map()

Trường hợp Ví dụ
Chuyển kiểu dữ liệu Chuỗi thành số nguyên
Xử lý hàng loạt Nhân đôi, cộng thêm, đổi chữ hoa
Kết hợp nhập liệu input().split() + map()

Ví dụ nhập nhanh nhiều số:

data = input().split()
nums = list(map(int, data))
print(nums)

Nếu nhập:

10 20 30

Kết quả:

[10, 20, 30]

6. So sánh map() và vòng lặp for

map() for
Ngắn gọn Dài hơn
Phù hợp xử lý đơn giản Linh hoạt hơn
Hay đi với lambda Dễ đọc cho người mới

Ví dụ dùng for:

data = [1, 2, 3]
kq = []
for x in data:
    kq.append(x * 2)
print(kq)

Kết quả:

[2, 4, 6]

7. Khi nào nên dùng map()

Nên dùng map() khi:

  • Muốn xử lý tất cả phần tử theo cùng 1 quy tắc
  • Code ngắn gọn
  • Kết hợp với lambda hoặc hàm có sẵn như int, str, float

Không nên dùng khi logic phức tạp nhiều điều kiện, lúc đó dùng for sẽ dễ đọc hơn.

8. Video thực hành hàm map trong python

Tìm kiếm:

Bài viết liên quan:

Hướng dẫn chi tiết hàm map trong Python