icantech
Lập trình Python
1269
02/10/2023

Hướng dẫn cách sử dụng hàm map trong Python thuần thục nhất

Python được biết đến là ngôn ngữ lập trình đa dạng và linh hoạt. Lập trình Python chứa rất nhiều hàm hữu ích để xử lý dữ liệu, điển hình có thể kể đến là hàm map. Qua bài viết ngày hôm nay, chúng ta sẽ cùng nhau tìm hiểu về hàm map trong Python, cú pháp hàm map cũng như cách kết hợp hàm map với các kiểu dữ liệu khác nhau. 

1. Tổng quan về hàm map trong Python

Ở phần đầu tiên, chúng ta sẽ lần lượt tìm hiểu hàm map là gì, cú pháp của hàm map và các trường hợp ta cần sử dụng hàm map trong Python. 

1.1. Hàm map trong Python là gì?

Hàm map là hàm được tích hợp sẵn trong Python. Lập trình viên sử dụng hàm map để duyệt tất cả phần tử, điều kiện là các phần tử này phải thuộc 1 interable đã cho (list, dictionary, tuple…). Kết quả trả về là 1 tập hợp mới. 

Hiểu một cách đơn giản hơn, hàm map đi qua danh sách đã có, gọi hàm cho từng phần tử tương ứng và trả về danh sách kết quả cuối cùng.  

1.2. Cú pháp hàm map

Hàm map trong Python có cú pháp như sau:

map(fuction, interable)

ham-map

Trong đó bao gồm các tham số:

  • Function: hàm dùng để thực thi cho từng phần tử
  • Iterable: là 1 list hoặc 1 tuple, 1 dictionary… mà bạn muốn duyệt. Bạn có thể thực hiện truyền nhiều giá trị interable cho hàm map trong Python. 

Chúng ta hãy cùng làm một số ví dụ về cách áp dụng hàm map như sau:

  • Sử dụng hàm map để tính bình phương của từng phần tử trong một danh sách (list). Chúng ta có cú pháp như sau:

numbers = [1, 2, 3, 4, 5] 

squares = map(lambda x: x**2, numbers) 

print(list(squares)) 

# Output: [1, 4, 9, 16, 25]

Lưu ý: hàm lambda x: x**2 làm hàm tính bình phương của mỗi phần tử trong danh sách.

  • Dùng hàm map trong Python để tính tổng 2 list, câu lệnh được viết như sau:

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 bạn sẽ thấy xuất hiện hàm lambda x, y: x + y, hàm này được dùng để tính tổng từng cặp phần tử của list 1 và list 2. 

1.3. Hàm map được dùng khi nào?

Bạn sử dụng hàm map trong các trường hợp sau:

  • Bạn cần thực hiện thao tác trên từng phần tử của 1 interable và có kết quả trả về. 
  • Bạn cần thực hiện phép toán trên hai hay nhiều interable và một interable mới có chứa kết quả sẽ được trả về. 
  • Bạn muốn tăng hiệu quả xử lý đồng thời tiết kiệm thời gian xử lý khi không phải sử dụng vòng lặp. 

2. Cách kết hợp hàm map với các kiểu dữ liệu khác nhau

Ở phần này, chúng ta sẽ cùng nhau tìm hiểu cách kết hợp hàm map với các kiểu dữ liệu khác thông qua các ví dụ cụ thể.

2.1. Kết hợp hàm map với list

Bạn hãy xem ví dụ dưới đây về cách kết hợp hàm map với list:

"""

Desc:

  Sử dụng hàm map() trong Python với List

"""

 

# Xem List như là một tham số lặp

iter_List = ["Python", "CSharp", "Java"]

print_Iter(iter_List)

 

# Gọi hàm map() trên một list

map_result =  map(getLength, iter_List)

print("Kiểu của map_result là {}".format(type(map_result)))

 

# In map()

print("Lengths are: ")

show_result(map_result)


Kết quả trả về:

Đầu vào, ['Python', 'CSharp', 'Java'] là một list. Nó có 3 phần tử.
list chứa 'Python' và có độ dài là 6.
list chứa 'CSharp' và có độ dài là 6.
list chứa 'Java' và có độ dài là 4.
Kiểu của map_result là 

Độ dài là: 
6 6 4

2.2. Kết hợp string với hàm map trong Python

Cú pháp kết hợp hàm map trong Python với kiểu dữ liệu string như sau:

"""

 Desc:

  Sử dụng hàm map() trong Python với một String

"""

 

# Xem chuỗi như là một tham số lặp

iter_String = "Python"

print_Iter(iter_String)

 

# Gọi hàm map() trên một Chuỗi

map_result =  map(getLength, iter_String)

print("Kiểu của map_result là {}".format(type(map_result)))

 

# In map()

print("Độ dài là: ")

show_result(map_result)

Kết quả trả về tương ứng:

Đầu vào, 'Python' là một String. Chiều dài là 6.
Kiểu của map_result là 

Độ dài là: 
1 1 1 1 1 1

Lưu ý: để có được kết quả trả về như trên, bạn sẽ cần bổ sung định nghĩa về print_Iter(), getLength() và show_result(). 

2.3. Dùng hàm map với tuple

Chúng ta sẽ sử dụng 1 tuple để truyền vào hàm map. Cụ thể, bạn hãy cùng xem ví dụ dưới đây:

"""

 Desc:

  Sử dụng hàm map() trong Python với một tuple

"""
 

# Xem tuple như là một tham số lặp

iter_Tuple = ("Python", "CSharp", "Java")

print_Iter(iter_Tuple)

 

# Gọi hàm map() trên một tuple

map_result =  map(getLength, iter_Tuple)

print("Kiểu của map_result là {}".format(type(map_result)))

 

# In map()

print("Độ dài là: ")

show_result(map_result)


Sau khi câu lệnh chạy, hệ thống ghi nhận kết quả trả về là:

Đầu vào, ('Python', 'CSharp', 'Java') là một tuple. Nó có 3 phần tử.
tuple chứa 'Python' và có độ dài là 6.
tuple chứa 'CSharp' và có độ dài là 6.
tuple chứa 'Java' và có độ dài là 4.
Kiểu của map_result là 

Độ dài là: 
6 6 4

2.4. Dùng hàm map với kiểu dictionary

Chúng ta hãy cùng xem câu lệnh sử dụng hàm map cho kiểu dictionary thông qua ví dụ:

"""

 Desc:

  Sử dụng hàm map() trong Python với một Dict

"""

 

# Xem Dict như là một tham số lặp

iter_Dict = {"Python":0, "CSharp":0, "Java":0}

print_Iter(iter_Dict)

 

# Gọi hàm map() trên một Dict

map_result =  map(getLength, iter_Dict)

print("Kiểu của map_result là {}".format(type(map_result)))

 

# In map()

print("Độ dài là: ")

show_result(map_result)

Kết quả thu được như sau:

Đầu vào, {'Java': 0, 'CSharp': 0, 'Python': 0} là một dict. Nó có 3 phần tử.
Dict key là 'Java' và value là 0.
Dict key là 'CSharp' và value là 0.
Dict key là 'Python' và value là 0.
Kiểu của map_result là

Độ dài là: 
4 6 6

2.5. Dùng hàm map trong Python với nhiều lần lặp

Ở phần này, chúng tôi sẽ hướng dẫn bạn cách dùng hàm map để chuyển nhiều hàm lặp sang đó. Bạn hãy quan sát ví dụ mẫu dưới đây của chúng tôi: 

# Hàm để in ra map

def show_result(iter_in):

    print("Đầu vào, {} là một {}.".format(iter_in, type(iter_in).__name__))

    for item in iter_in:

        print("{} chứa '{}'.".format(type(iter_in).__name__, item))

 

# Sử dụng Anonymous Function với map()

map_result =  map(lambda arg1, arg2, arg3: [len(arg1), len(arg2), len(arg3)], ["Python", "JavaScript", "Java"], ("Go", "C", "C++", "Pascal"), {"Delphi", "VC++", "PHP", "MySQL", "MariaDB"})

to_list = list(map_result)

show_result(to_list)

Từ câu lệnh trên, chúng ta có được kết quả trả về như sau:
Đầu vào, [[6, 2, 6], [10, 1, 7], [4, 3, 4]] là một list.
list chứa '[6, 2, 6]'.
list chứa '[10, 1, 7]'.
list chứa '[4, 3, 4]'.

Bạn có thể thấy ta đang sử dụng 3 lần lặp, Anonymous Function đang lấy ra 3 đối số khi chúng ta thực hiện câu lệnh. 

3. Lời Kết

Đến đây chắc hẳn bạn đã hiểu phần nào về hàm map trong Python cũng như cách sử dụng hàm map. Bên cạnh việc tìm hiểu lý thuyết của hàm map, bạn cần thực hành thường xuyên để ngày càng thành thạo hơn. Nếu bạn đang quan tâm đến học lập trình thì hãy tham khảo ngay khóa học Python tại ICANTECH nhé

Nguồn ảnh: ICANTECH

Share
Tags
Lập trình Python

Bài tương tự