Phần 23 – map, filter trong lập trình Python

Trong lập trình Python, map()filter() là các hàm được sử dụng để xử lý và biến đổi dữ liệu trong một list hoặc iterable khác. Cả hai hàm này thường được sử dụng kết hợp với lambda function để thực hiện các thao tác xử lý dữ liệu một cách gọn nhẹ.

map(): Hàm map() được sử dụng để áp dụng một hàm lên mỗi phần tử của một list (hoặc iterable khác) và trả về một iterator chứa các kết quả.

Cú pháp:

pythonCopy codemap(function, iterable)

Trong đó:

  • function là một hàm (hoặc lambda function) được áp dụng lên từng phần tử của iterable.
  • iterable là một list hoặc iterable khác.

Ví dụ sử dụng map() với lambda function:

pythonCopy codenumbers = [1, 2, 3, 4, 5]
squares = map(lambda x: x ** 2, numbers)
print(list(squares))  # Output: [1, 4, 9, 16, 25]

filter(): Hàm filter() được sử dụng để lọc các phần tử trong một list (hoặc iterable khác) dựa trên một điều kiện xác định và trả về một iterator chứa các phần tử thoả mãn điều kiện đó.

Cú pháp:

pythonCopy codefilter(function, iterable)

Trong đó:

  • function là một hàm (hoặc lambda function) định nghĩa điều kiện lọc.
  • iterable là một list hoặc iterable khác.

Ví dụ sử dụng filter() với lambda function:

pythonCopy codenumbers = [1, 2, 3, 4, 5]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))  # Output: [2, 4]

Trong ví dụ này, hàm filter() lọc các số chẵn từ list numbers bằng cách sử dụng lambda function để kiểm tra điều kiện.

Cả hai hàm map()filter() trả về các iterator. Để nhận kết quả cuối cùng là một list, ta có thể sử dụng hàm list() để chuyển iterator thành list.

Lưu ý rằng từ lập trình Python 3 trở đi, map()filter() trả về các iterator, không phải list như trong Python 2. Điều này giúp tối ưu hóa bộ nhớ khi làm việc với các tập dữ liệu lớn, nhưng nếu cần, bạn có thể chuyển đổi iterator thành list để lưu trữ kết quả.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top