Các hàm Python trật tự cao hơn (phần 4)

Các hàm Python trật tự cao hơn (tiếp tục)

Lọc

Một dạng thứ hai của hàm trật tự cao hơn được gọi là lọc. Trong quá trình này, một dạng của hàm được gọi là predicate
được áp dụng cho mỗi giá trị trong một list. Nếu predicate trả về True, giá trị truyền test và được thêm vào một
object lọc (tương tự như một map object). Mặt khác, giá trị bị bỏ đi khỏi xem xét. Quá trình một chút giống rót
nước nóng vào một rổ lọc với cafe. Thứ tốt để uống đi vào tách với nước, và cafe nằm lại đằng sau có thể ném đi
vào vườn.
Python bao gồm một hàm filter cái được sử dụng trong ví dụ tiếp theo để sinh ra một list các số lẻ trong list khác:

>>> def odd(n): return n % 2 == 1
>>> list(filter(odd, range(lO)))
[1, 3, 5, 7, 9]

Như với hàm map, kết quả của hàm filter có thể được truyền trực tiếp tới lời gọi khác của filter hay map. Xử lí
list thường chứa một vài chập và lọc dữ liệu, cái có thể được thể hiện như một chuỗi các lời gọi hàm nested.

Chia sẻ