Thông qua phương thức filter, chúng ta lọc ra các phần tử cụ thể của một danh sách sử dụng điều kiện lọc được định nghĩa trong một hàm riêng biệt. Vì vậy, trước tiên chúng ta tạo một hàm do người dùng định nghĩa sẽ đề cập đến tiêu chí lọc. Cùng nhau, hàm này và danh sách được cung cấp sẽ được lấy làm tham số cho hàm filter để cho kết quả.
Cú pháp
filter(filter_function, sequence)
Ví dụ
Trong ví dụ dưới đây, chúng ta tạo một hàm sẽ tìm các số chẵn có mặt trong một danh sách. Sau đó nó sẽ loại bỏ chúng (trả về false). Các số lẻ còn lại sẽ được thêm vào danh sách cuối cùng. Chúng ta có thể sửa đổi hàm này để lọc ra các số chia hết cho 3 hoặc 5, v.v.
num_list = [6, 17, 32, 11, 21, 132]
def remove_even(x):
if x % 2 == 0:
return False
else:
return True
odd_nos = filter(remove_even, num_list)
for x in odd_nos:
print(x)
Kết quả
Chạy mã trên cho kết quả sau:
17 11 21
Ví dụ khác
Chúng ta có thể sử dụng cùng phương pháp để lọc ra các nguyên âm từ một danh sách chữ cái cho trước.
letters = ['t', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's']
def get_vowels(c):
if c in ['a', 'e', 'i', 'o', 'u']:
return True
else:
return False
vowel_list = filter(get_vowels, letters)
for w in vowel_list:
print(w)
Kết quả
Chạy mã trên cho kết quả sau:
u o i a