Tóm tắt: Trong hướng dẫn này, bạn sẽ học cách lọc các yếu tố danh sách bằng cách sử dụng chức năng Python filter[]
tích hợp.: in this tutorial, you’ll learn how to filter list elements by using the built-in Python filter[]
function.
Giới thiệu về hàm Python Filter []
Đôi khi, bạn cần lặp lại các yếu tố của một danh sách và chọn một số trong số chúng dựa trên các tiêu chí được chỉ định.
Giả sử rằng bạn có danh sách sau của scores
:
Code language: Python [python]
scores = [70, 60, 80, 90, 50]
Để có được tất cả các phần tử từ danh sách scores
trong đó mỗi phần tử lớn hơn hoặc bằng 70, bạn sử dụng mã sau:
Code language: Python [python]
scores = [70, 60, 80, 90, 50] filtered = [] for score in scores: if score >= 70: filtered.append[score] print[filtered]
Làm thế nào nó hoạt động.
- Đầu tiên, xác định một danh sách trống [
1] sẽ giữ các yếu tố từ danh sách
Code language: Python [python]scores = [70, 60, 80, 90, 50] filtered = [] for score in scores: if score >= 70: filtered.append[score] print[filtered]
scores
. - Thứ hai, lặp lại các yếu tố của danh sách
scores
. Nếu phần tử lớn hơn hoặc bằng 70, hãy thêm nó vào danh sách
1.scores = [70, 60, 80, 90, 50] filtered = [] for score in scores: if score >= 70: filtered.append[score] print[filtered]
- Thứ ba, hiển thị danh sách
1 lên màn hình.
Code language: Python [python]scores = [70, 60, 80, 90, 50] filtered = [] for score in scores: if score >= 70: filtered.append[score] print[filtered]
Python có chức năng tích hợp có tên là filter[]
cho phép bạn lọc danh sách [hoặc một tuple] theo cách đẹp hơn.
Sau đây cho thấy cú pháp của hàm filter[]
:
Code language: Python [python]
filter[fn, list]
Hàm filter[]
lặp lại các phần tử của
9 và áp dụng hàmCode language: Python [python]
scores = [70, 60, 80, 90, 50] filtered = [] for score in scores: if score >= 70: filtered.append[score] print[filtered]
0 cho mỗi phần tử. Nó trả về một trình lặp cho các phần tử trong đóCode language: Python [python]
filter[fn, list]
0 trả vềCode language: Python [python]
filter[fn, list]
2.Code language: Python [python]
filter[fn, list]
Trên thực tế, bạn có thể chuyển bất kỳ sự khác biệt nào cho đối số thứ hai của hàm filter[]
, không chỉ là một danh sách.
Sau đây chỉ ra cách sử dụng hàm filter[]
để trả về danh sách scores
trong đó mỗi điểm lớn hơn hoặc bằng 70:
Code language: Python [python]
scores = [70, 60, 80, 90, 50] filtered = filter[lambda score: score >= 70, scores] print[list[filtered]]
Output:
Code language: Python [python]
[70, 80, 90]
Vì hàm filter[]
trả về một trình lặp, bạn có thể sử dụng vòng lặp
7 để lặp lại nó. Hoặc bạn có thể sử dụng chức năngCode language: Python [python]
filter[fn, list]
8 để chuyển đổi trình lặp thành danh sách.Code language: Python [python]
filter[fn, list]
Sử dụng hàm Python Filter [] để lọc danh sách các bộ dữ liệu ví dụ
Giả sử bạn có danh sách các bộ dữ liệu sau:
Code language: Python [python]
countries = [ ['China', 1394015977], ['United States', 329877505], ['India', 1326093247], ['Indonesia', 267026366], ['Bangladesh', 162650853], ['Pakistan', 233500636], ['Nigeria', 214028302], ['Brazil', 21171597], ['Russia', 141722205], ['Mexico', 128649565] ]
Mỗi yếu tố trong một danh sách là một tuple chứa tên và dân số của đất nước.
Để có được tất cả các quốc gia có dân số lớn hơn 300 triệu, bạn có thể sử dụng chức năng filter[]
như sau:
Code language: Python [python]
countries = [ ['China', 1394015977], ['United States', 329877505], ['India', 1326093247], ['Indonesia', 267026366], ['Bangladesh', 162650853], ['Pakistan', 233500636], ['Nigeria', 214028302], ['Brazil', 21171597], ['Russia', 141722205], ['Mexico', 128649565] ] populated = filter[lambda c: c[1] > 300000000, countries] print[list[populated]]
Output:
Code language: Python [python]
[['China', 1394015977], ['India', 1326093247], ['United States', 329877505]]
Bản tóm tắt
- Sử dụng hàm Python
filter[]
để lọc danh sách [hoặc một tuple].
Bạn có thấy hướng dẫn này hữu ích không?