Hàm filter[] trong Python lọc ra các phần tử theo điều kiện của hàm func từ list, dict… Hàm này sẽ chỉ trả về những giá trị mà điều kiện trong func chấp nhận [có nghĩa là True]. Cú pháp của hàm filter[] như thế nào, nó có những tham số gì và cách sử dụng ra sao? Mời bạn đọc theo dõi. Nội dung chính ShowShow
Nội dung chính
- Các tham số của hàm filter[]
- Ví dụ : Hàm filter[] hoạt động thế nào?
- Ví dụ 2: filter[] hoạt động không cần func.
- Đăng nhập
- Sử dụng filter[] với một hàm
- Sử dụng None có filter[]
- Sử dụng filter[] với Danh sách Từ điển
- Kết luận
filter[func, iterable]
Các tham số của hàm filter[]
Ví dụ : Hàm filter[] hoạt động thế nào?
- Ví dụ 2: filter[] hoạt động không cần func.
- Đăng nhập
Ví dụ : Hàm filter[] hoạt động thế nào?
# danh sách chữ cái
alphabet = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# lọc nguyên âm
# viết bởi Quantrimang.com
def filterNguyenam[alphabet]:
nguyenam = ['a', 'e', 'i', 'o', 'u']
if[alphabet in nguyenam]:
return True
else:
return False
filterNguyenam = filter[filterNguyenam, alphabet]
print['Các nguyên âm được lọc là:']
for nguyenam in filterNguyenam:
print[nguyenam]
Ví dụ 2: filter[] hoạt động không cần func.
Đăng nhậpSử dụng filter[] với một hàm
Sử dụng None có filter[]
Ví dụ 2: filter[] hoạt động không cần func.
# random list
# viết bởi Quantrimang.com
randomList = [1, 'a', 0, False, True, '0']
filteredList = filter[None, randomList]
print['Các phần tử được lọc là:']
for element in filteredList:
print[element]
Ví dụ 2: filter[] hoạt động không cần func.
Các phần tử được lọc là:
1
a
True
0
Đăng nhập
Đăng nhập
Sử dụng filter[] với một hàm
Sử dụng None có filter[]
Sử dụng filter[] với Danh sách Từ điển
filter[function, iterable]
Kết luận
Nội dung chính
Hàm filter[] có 2 tham số:
Sử dụng filter[] với một hàm
Sử dụng None có filter[]
Sử dụng filter[] với Danh sách Từ điển
filter[lambda item: item[] expression, iterable]
Kết luận
creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']
Nội dung chính
print[list[filter[lambda x: x[0].lower[] in 'aeiou', creature_names]]]
Hàm filter[] có 2 tham số:
func: là hàm điều kiện để kiểm tra các phần tử trong interable là đúng hay sai, func chỉ có thể trả về True hoặc False.
interable: là các iterable cần lọc, có thể là set, list, tuple hoặc container.
Output
['Ashley', 'Olly']
Kết quả tương tự có thể đạt được bằng cách sử dụng một hàm ta xác định:
# danh sách chữ cái
alphabet = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# lọc nguyên âm
# viết bởi Quantrimang.com
def filterNguyenam[alphabet]:
nguyenam = ['a', 'e', 'i', 'o', 'u']
if[alphabet in nguyenam]:
return True
else:
return False
filterNguyenam = filter[filterNguyenam, alphabet]
print['Các nguyên âm được lọc là:']
for nguyenam in filterNguyenam:
print[nguyenam]
0Chức năng của ta
3 định nghĩa khái niệm mà ta sẽ thực hiện để lọcCác phần tử được lọc là:
1
a
True
0
# random list
# viết bởi Quantrimang.com
randomList = [1, 'a', 0, False, True, '0']
filteredList = filter[None, randomList]
print['Các phần tử được lọc là:']
for element in filteredList:
print[element]
9 ., kết quả sẽ như sau:
Output
['Ashley', 'Olly']
Nhìn chung,
8 hàmCác nguyên âm được lọc là:
a
e
i
o
8 đạt được kết quả tương tự vớiCác nguyên âm được lọc là:
a
e
i
o
1 như khi ta sử dụng một hàm thông thường. Sự cần thiết phải xác định một hàm thông thường tăng lên khi độ phức tạp của các biểu thức để lọc dữ liệu của ta tăng lên, điều này có khả năng thúc đẩy khả năng đọc tốt hơn trong mã của ta .Các nguyên âm được lọc là:
a
e
i
o
Sử dụng None có filter[]
Ta có thể chuyển
8 làm đối số đầu tiên choCác phần tử được lọc là:
1
a
True
0
1 để trình vòng lặp được trả về lọc ra bất kỳ giá trị nào mà Python coi là "sai". Nói chung, Python coi bất kỳ thứ gì có độ dài bằngCác nguyên âm được lọc là:
a
e
i
o
filter[function, iterable]
0 [chẳng hạn như danh sách trống hoặc chuỗi trống] hoặc số tương đương với filter[function, iterable]
0 là sai, do đó, việc sử dụng thuật ngữ “falsy”.Trong trường hợp sau, ta muốn lọc danh sách của bạn để chỉ hiển thị số bể tại bể cá của ta :
# danh sách chữ cái
alphabet = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# lọc nguyên âm
# viết bởi Quantrimang.com
def filterNguyenam[alphabet]:
nguyenam = ['a', 'e', 'i', 'o', 'u']
if[alphabet in nguyenam]:
return True
else:
return False
filterNguyenam = filter[filterNguyenam, alphabet]
print['Các nguyên âm được lọc là:']
for nguyenam in filterNguyenam:
print[nguyenam]
2Trong đoạn mã này, ta có một danh sách chứa các số nguyên , dãy trống và giá trị boolean .
# danh sách chữ cái
alphabet = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# lọc nguyên âm
# viết bởi Quantrimang.com
def filterNguyenam[alphabet]:
nguyenam = ['a', 'e', 'i', 'o', 'u']
if[alphabet in nguyenam]:
return True
else:
return False
filterNguyenam = filter[filterNguyenam, alphabet]
print['Các nguyên âm được lọc là:']
for nguyenam in filterNguyenam:
print[nguyenam]
3Ta sử dụng các
1 chức năng vớiCác nguyên âm được lọc là:
a
e
i
o
8 và vượt qua trongCác phần tử được lọc là:
1
a
True
0
filter[function, iterable]
4 danh sách như iterable của ta . Vì ta đã chuyển 8 làm đối số đầu tiên, ta sẽ kiểm tra xem các mục trong danh sách của ta có bị coi là sai hay không.Các phần tử được lọc là:
1
a
True
0
# danh sách chữ cái
alphabet = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# lọc nguyên âm
# viết bởi Quantrimang.com
def filterNguyenam[alphabet]:
nguyenam = ['a', 'e', 'i', 'o', 'u']
if[alphabet in nguyenam]:
return True
else:
return False
filterNguyenam = filter[filterNguyenam, alphabet]
print['Các nguyên âm được lọc là:']
for nguyenam in filterNguyenam:
print[nguyenam]
4Sau đó, ta bọc
filter[function, iterable]
6 trong một hàm 4 để nó trả về một danh sách cho cácCác nguyên âm được lọc là:
a
e
i
o
filter[function, iterable]
6 khi ta in.Ở đây kết quả chỉ hiển thị các số nguyên. Tất cả các mục được đánh giá là
# random list
# viết bởi Quantrimang.com
randomList = [1, 'a', 0, False, True, '0']
filteredList = filter[None, randomList]
print['Các phần tử được lọc là:']
for element in filteredList:
print[element]
0 , tương đương với độ dài bằng filter[function, iterable]
0 , đã bị loại bỏ bởi 1 :Các nguyên âm được lọc là:
a
e
i
o
# danh sách chữ cái
alphabet = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# lọc nguyên âm
# viết bởi Quantrimang.com
def filterNguyenam[alphabet]:
nguyenam = ['a', 'e', 'i', 'o', 'u']
if[alphabet in nguyenam]:
return True
else:
return False
filterNguyenam = filter[filterNguyenam, alphabet]
print['Các nguyên âm được lọc là:']
for nguyenam in filterNguyenam:
print[nguyenam]
5Lưu ý : Nếu ta không sử dụng
4 và print Các nguyên âm được lọc là:
a
e
i
o
6 ta sẽ nhận được một đối tượng filter giống như sau: filter[function, iterable]
4 . Đối tượng bộ lọc là một đối tượng có thể lặp lại, vì vậy ta có thể lặp lại nó với filter[lambda item: item[] expression, iterable]
2 hoặc ta có thể sử dụng Các nguyên âm được lọc là:
a
e
i
o
4 để biến nó thành một danh sách, ta đang làm ở đây vì đó là một cách tốt để xem lại kết quả. : Nếu ta không sử dụng Các nguyên âm được lọc là:
a
e
i
o
4 và print Các nguyên âm được lọc là:
a
e
i
o
6 ta sẽ nhận được một đối tượng filter giống như sau: filter[function, iterable]
4 . Đối tượng bộ lọc là một đối tượng có thể lặp lại, vì vậy ta có thể lặp lại nó với filter[lambda item: item[] expression, iterable]
2 hoặc ta có thể sử dụng Các nguyên âm được lọc là:
a
e
i
o
4 để biến nó
thành một danh sách, ta đang làm ở đây vì đó là một cách tốt để xem lại kết quả.Các nguyên âm được lọc là:
a
e
i
o
Với
8 ta đã sử dụngCác phần tử được lọc là:
1
a
True
0
1 để nhanh chóng xóa các mục khỏi danh sách bị coi là sai.Các nguyên âm được lọc là:
a
e
i
o
Sử dụng filter[] với Danh sách Từ điển
Khi ta có cấu trúc dữ liệu phức tạp hơn, ta vẫn có thể sử dụng
1 để đánh giá từng mục. Ví dụ: nếu ta có một danh sách các từ điển, ta không chỉ muốn lặp lại từng mục trong danh sách - một trong các từ điển - mà ta còn có thể cần lặp lại từng cặp khóa: giá trị trong từ điển để đánh giá tất cả dữ liệu.Các nguyên âm được lọc là:
a
e
i
o
Ví dụ: giả sử ta có danh sách từng sinh vật trong bể cá của bạn cùng với các chi tiết khác nhau về từng sinh vật trong số chúng:
# danh sách chữ cái
alphabet = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# lọc nguyên âm
# viết bởi Quantrimang.com
def filterNguyenam[alphabet]:
nguyenam = ['a', 'e', 'i', 'o', 'u']
if[alphabet in nguyenam]:
return True
else:
return False
filterNguyenam = filter[filterNguyenam, alphabet]
print['Các nguyên âm được lọc là:']
for nguyenam in filterNguyenam:
print[nguyenam]
6Ta muốn lọc dữ liệu này bằng một chuỗi tìm kiếm mà ta cung cấp cho hàm. Để có
1 truy cập từng từ điển và từng mục trong từ điển, ta xây dựng một hàm lồng nhau, như sau:Các nguyên âm được lọc là:
a
e
i
o
# danh sách chữ cái
alphabet = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# lọc nguyên âm
# viết bởi Quantrimang.com
def filterNguyenam[alphabet]:
nguyenam = ['a', 'e', 'i', 'o', 'u']
if[alphabet in nguyenam]:
return True
else:
return False
filterNguyenam = filter[filterNguyenam, alphabet]
print['Các nguyên âm được lọc là:']
for nguyenam in filterNguyenam:
print[nguyenam]
7Ta định nghĩa một
creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']
1 chức năng mà mất creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']
2 và creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']
3 như thông số. Trong creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']
1 ta chuyển creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']
5 làm hàm để 1 . HàmCác nguyên âm được lọc là:
a
e
i
o
creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']
1 sẽ trả về trình lặp kết quả từ 1 .Các nguyên âm được lọc là:
a
e
i
o
creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']
5 lấy # random list
# viết bởi Quantrimang.com
randomList = [1, 'a', 0, False, True, '0']
filteredList = filter[None, randomList]
print['Các phần tử được lọc là:']
for element in filteredList:
print[element]
6 làm đối số, đại diện cho một mục trong danh sách của ta [nghĩa là một từ điển duy nhất].Tiếp theo
2 vòng lặp truy cập các giá trị trong mỗi phím: cặp giá trị trong từ điển của ta và sau đó sử dụng một tuyên bố có điều kiện để kiểm tra xem cácCác nguyên âm được lọc là:
a
e
i
o
creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']
3 là trong print[list[filter[lambda x: x[0].lower[] in 'aeiou', creature_names]]]
3 , đại diện cho một giá trị.Giống như trong các ví dụ trước của ta , nếu biểu thức đánh giá là
print[list[filter[lambda x: x[0].lower[] in 'aeiou', creature_names]]]
4 , hàm sẽ thêm mục vào đối tượng bộ lọc. Kết quả sẽ trả về sau khi hàm creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']
1 hoàn thành. Ta đặt vị trí print[list[filter[lambda x: x[0].lower[] in 'aeiou', creature_names]]]
6 bên ngoài vòng lặp của ta để nó kiểm tra mọi mục trong mỗi từ điển, thay vì quay lại sau khi kiểm tra từ điển đầu tiên.Ta gọi
creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']
1 với danh sách các từ điển của ta và chuỗi tìm kiếm mà ta muốn tìm các kết quả phù hợp:# danh sách chữ cái
alphabet = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# lọc nguyên âm
# viết bởi Quantrimang.com
def filterNguyenam[alphabet]:
nguyenam = ['a', 'e', 'i', 'o', 'u']
if[alphabet in nguyenam]:
return True
else:
return False
filterNguyenam = filter[filterNguyenam, alphabet]
print['Các nguyên âm được lọc là:']
for nguyenam in filterNguyenam:
print[nguyenam]
8Một khi các chức năng hoàn thành ta có đối tượng bộ lọc của ta được lưu trữ trong
print[list[filter[lambda x: x[0].lower[] in 'aeiou', creature_names]]]
8 biến, mà ta biến thành một danh sách và in:# danh sách chữ cái
alphabet = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
# lọc nguyên âm
# viết bởi Quantrimang.com
def filterNguyenam[alphabet]:
nguyenam = ['a', 'e', 'i', 'o', 'u']
if[alphabet in nguyenam]:
return True
else:
return False
filterNguyenam = filter[filterNguyenam, alphabet]
print['Các nguyên âm được lọc là:']
for nguyenam in filterNguyenam:
print[nguyenam]
9Ta sẽ nhận được kết quả sau từ chương trình này:
0Các nguyên âm được lọc là:
a
e
i
o
Ta đã lọc danh sách các từ điển với chuỗi tìm kiếm
print[list[filter[lambda x: x[0].lower[] in 'aeiou', creature_names]]]
9 . Ta có thể thấy rằng ba từ điển bao gồm một số xe tăng với print[list[filter[lambda x: x[0].lower[] in 'aeiou', creature_names]]]
9 đã được trả lại. Sử dụng chức năng lồng nhau của riêng ta cho phép ta truy cập mọi mục và kiểm tra hiệu quả từng mục đối với chuỗi tìm kiếm.Kết luận
Trong hướng dẫn này, ta đã học các cách khác nhau để sử dụng hàm
1 trong Python. Như vậy, bạn có thể sử dụngCác nguyên âm được lọc là:
a
e
i
o
1 với hàm của riêng mình, hàmCác nguyên âm được lọc là:
a
e
i
o
8 hoặc vớiCác nguyên âm được lọc là:
a
e
i
o
8 để lọc các mục có độ phức tạp khác nhau của cấu trúc dữ liệu.Các phần tử được lọc là:
1
a
True
0
Mặc dù trong hướng dẫn này, ta đã in kết quả từ
1 ngay lập tức ở định dạng danh sách, nhưng có khả năng trong chương trình của ta , ta sẽ sử dụng đối tượngCác nguyên âm được lọc là:
a
e
i
o
1 trả về và thao tác thêm với dữ liệu.Các nguyên âm được lọc là:
a
e
i
o
Nếu bạn muốn tìm hiểu thêm về Python, hãy xem loạt bài Cách viết mã trong Python 3 và trang chủ đề Python của ta .
Tags:
Các tin liên quan
Cách sử dụng module pathlib để thao tác đường dẫn hệ thống tệp trong Python 3 2020-07-15 Cách tạo Slackbot bằng Python trên Ubuntu 20.04 2020-06-30 Cách sử dụng ThreadPoolExecutor trong Python 3 2020-06-23 Cách sử dụng module sqlite3 trong Python 3 2020-06-02 Cách thiết lập notebook Jupyter với Python 3 trên Ubuntu 20.04 và Kết nối qua Đường hầm SSH 2020-05-19 Cách cài đặt Phân phối Python Anaconda trên Ubuntu 20.04 [Khởi động nhanh] 2020-05-19 Cách cài đặt Phân phối Python Anaconda trên Ubuntu 20.04 2020-05-06 Cách cài đặt Python 3 và thiết lập môi trường lập trình trên server Ubuntu 20.04 2020-04-24 Cách cài đặt Python 3 và thiết lập môi trường lập trình trên server Ubuntu 18.04 2020-04-24 Cách cài đặt Python 3 và thiết lập môi trường lập trình trên Ubuntu 20.04 [Quickstart] 2020-04-24
2020-07-15
Cách tạo Slackbot bằng Python trên Ubuntu 20.04
2020-06-30
Cách sử dụng ThreadPoolExecutor trong Python 3
2020-06-23
Cách sử dụng module sqlite3 trong Python 3
2020-06-02
Cách thiết lập notebook Jupyter với Python 3 trên Ubuntu 20.04 và Kết nối qua Đường hầm SSH
2020-05-19
Cách cài đặt Phân phối Python Anaconda trên Ubuntu 20.04 [Khởi động nhanh]
2020-05-19
Cách cài đặt Phân phối Python Anaconda trên Ubuntu 20.04
2020-05-06
Cách cài đặt Python 3 và thiết lập môi trường lập trình trên server Ubuntu 20.04
2020-04-24
Cách cài đặt Python 3 và thiết lập môi trường lập trình trên server Ubuntu 18.04
2020-04-24
Cách cài đặt Python 3 và thiết lập môi trường lập trình trên Ubuntu 20.04 [Quickstart]
2020-04-24