Giả sử chúng ta có một danh sách các số gọi là nums. Chúng ta cũng có một số x khác. Chúng ta phải tìm tất cả các số từ nums nhỏ hơn x bằng cách lọc. Trong Python có phương thức filter() nhận hàm làm đối số và lọc bằng hàm này.
Vì vậy, nếu đầu vào là nums = [1,5,8,3,6,9,12,77,55,36,2,5,6,12,87] x = 50, thì đầu ra sẽ là [1, 5, 8, 3, 6, 9, 12, 36, 2, 5, 6, 12].
Để giải quyết vấn đề này, chúng ta sẽ làm theo các bước sau:
định nghĩa hàm f, nhận tham số a
nếu a < x, trả về true, ngược lại false
left_items := lọc nums bằng hàm f
chuyển đối tượng filter left_items thành list và trả về
Ví dụ
Hãy xem triển khai sau để hiểu rõ hơn:
def solve(nums, x):
left_items = filter(lambda a: a < x, nums)
return list(left_items)
nums = [1,5,8,3,6,9,12,77,55,36,2,5,6,12,87]
x = 50
print(solve(nums, x))
Đầu vào
[1,5,8,3,6,9,12,77,55,36,2,5,6,12,87], 50
Đầu ra
[1, 5, 8, 3, 6, 9, 12, 36, 2, 5, 6, 12]