Hiểu về các hàm Map, Filter và Reduce của Python

Python cung cấp một số công cụ lập trình chức năng có thể đơn giản hóa các tác vụ xử lý dữ liệu. Trong số đó có các hàm map, filterreduce. Các hàm này cho phép bạn thực hiện các thao tác trên các tập hợp dữ liệu theo cách ngắn gọn và dễ đọc. Bài viết này khám phá từng hàm này và cung cấp các ví dụ để giúp bạn hiểu cách sử dụng chúng hiệu quả.

Hàm map

Hàm map áp dụng một hàm nhất định cho tất cả các mục trong danh sách đầu vào (hoặc bất kỳ phần tử lặp nào) và trả về một trình lặp tạo ra kết quả. Điều này đặc biệt hữu ích khi áp dụng các phép biến đổi cho từng phần tử trong một tập hợp.

Cú pháp

map(function, iterable)

Ví dụ

Giả sử bạn muốn bình phương từng số trong một danh sách. Bạn có thể sử dụng map để thực hiện điều này:

# Define a function to square a number
def square(x):
    return x * x

# List of numbers
numbers = [1, 2, 3, 4, 5]

# Apply the function to each item in the list
squared_numbers = map(square, numbers)

# Convert the result to a list and print
print(list(squared_numbers))  # Output: [1, 4, 9, 16, 25]

Chức năng filter

Hàm filter được sử dụng để lọc các phần tử khỏi một iterable dựa trên hàm trả về True hoặc False. Chỉ các phần tử mà hàm trả về True mới được đưa vào kết quả.

Cú pháp

filter(function, iterable)

Ví dụ

Ví dụ, nếu bạn chỉ muốn giữ lại các số chẵn trong danh sách, bạn có thể sử dụng filter:

# Define a function to check if a number is even
def is_even(x):
    return x % 2 == 0

# List of numbers
numbers = [1, 2, 3, 4, 5]

# Filter the list using the function
even_numbers = filter(is_even, numbers)

# Convert the result to a list and print
print(list(even_numbers))  # Output: [2, 4]

Hàm reduce

Hàm reduce, là một phần của mô-đun functools, áp dụng một hàm nhị phân tích lũy cho các mục của một đối tượng lặp, từ trái sang phải, để giảm đối tượng lặp thành một giá trị duy nhất.

Cú pháp

from functools import reduce

reduce(function, iterable[, initializer])

Ví dụ

Ví dụ, để tìm tích của tất cả các số trong một danh sách, bạn có thể sử dụng reduce:

from functools import reduce

# Define a function to multiply two numbers
def multiply(x, y):
    return x * y

# List of numbers
numbers = [1, 2, 3, 4, 5]

# Reduce the list using the function
product = reduce(multiply, numbers)

# Print the result
print(product)  # Output: 120

Phần kết luận

Các hàm map, filterreduce là những công cụ mạnh mẽ cho lập trình hàm trong Python. Chúng cung cấp các giải pháp tinh tế để áp dụng các phép biến đổi, lọc dữ liệu và giảm các bộ sưu tập thành một giá trị duy nhất. Bằng cách thành thạo các hàm này, bạn có thể viết mã ngắn gọn và biểu cảm hơn cho nhiều tác vụ xử lý dữ liệu.