❮ Chức năng tích hợp sẵn
Thí dụ
Lọc mảng và trả về một mảng mới chỉ với các giá trị bằng hoặc trên 18:
Tuổi = [5, 12, 17, 18, 24, 32]
def myfunc [x]: & nbsp; Nếu x 500:
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; return true
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; return false
Filtered_Object = Filter [Func, Books]
Hãy xem xét kịch bản đơn giản này. Giả sử, bạn có một danh sách các cuốn sách chứa chi tiết hơn 1000 cuốn sách. Bây giờ, nếu bạn cố gắng sử dụng một chức năng toàn diện để lọc các cuốn sách cụ thể, quá trình này có thể khá toàn diện về mặt sử dụng tài nguyên. Danh sách toàn diện sẽ tạo ra một danh sách mới và vào thời điểm nó đã hoàn thành toàn bộ hoạt động của mình, bạn sẽ có hai danh sách trong bộ nhớ của chúng tôi. Và khi các danh sách rất lớn, điều này có thể gây ra một vấn đề lớn. Hơn nữa, nó làm tăng thời gian chạy tổng thể của quá trình xử lý. & NBSP;
Trái ngược với điều này, hàm Filter [] sẽ chỉ đơn giản là tạo một đối tượng sẽ không phải là bản sao của danh sách nhưng sẽ là một tham chiếu đến danh sách ban đầu, cùng với hàm đã được cung cấp cho bộ lọc và các chỉ số có được đi qua trong danh sách ban đầu. Không cần phải nói, điều này mất ít bộ nhớ hơn và thực hiện nhanh hơn so với danh sách hiểu. & NBSP;
Ví dụ về bộ lọc trong Python
Bây giờ, hãy xem một vài ví dụ sẽ chứng minh các cách khác nhau mà bạn có thể sử dụng phương thức bộ lọc trong Python. Bạn có thể thử phương pháp này trên các phép lặp khác nhau bằng hàm Lambda, hàm truyền thống và không chỉ định hàm.
Ví dụ 1. Sử dụng bộ lọc có chức năng đơn giản trong danh sách.
Giả sử bạn có một danh sách các chữ cái và chúng tôi muốn lọc các nguyên âm bằng bộ lọc trong danh sách đó. Bạn có thể tạo một chức năng đơn giản để kiểm tra xem một chữ cái làm đối số cho hàm đó có phải là nguyên âm hay không và trả về đúng hay sai dựa trên kiểm tra. Cũng có thể sử dụng phương pháp này như một đối số cho hàm bộ lọc cùng với danh sách các chữ cái. Bây giờ, hãy thử nó ra.
Chương trình -& nbsp;
Kiểm tra def [thư]: & nbsp; list_of_vowels = ['a', 'e', 'i', 'o', 'u'] & nbsp; Nếu chữ cái trong list_of_vowels: & nbsp; & nbsp; & nbsp; trả về đúng & nbsp; khác: & nbsp; & nbsp; & nbsp; trả về falseletters = ['u', 'a', 'q', 'c', 'i', 'd', 'z', 'p', 'e'] filtered_object = filter [kiểm tra, chữ cái] in [ "Loại đối tượng được trả về là:", gõ [pectred_object]] đã lọc_list = list [piltered_object] in ["Danh sách các nguyên âm là:", Lọc_list]
list_of_vowels = ['a', 'e', 'i', 'o', 'u']
if letter in list_of_vowels:
return True
else:
return False
letters = ['u', 'a', 'q', 'c', 'i', 'd', 'z', 'p', 'e']
filtered_object = filter[check, letters]
print["The type of returned object is: ", type[filtered_object]]
filtered_list = list[filtered_object]
print["The list of vowels is: ",
filtered_list]
Đầu ra -& nbsp;
Ví dụ 2. Sử dụng bộ lọc có chức năng Lambda trong danh sách
Trong ví dụ này, bạn sẽ sử dụng chức năng bộ lọc trên danh sách các số để tách số thành hai danh sách số lẻ và chẵn. Ở đây, sử dụng hàm Lambda thay vì hàm truyền thống trong tham số.
Chương trình -& nbsp;
Kiểm tra def [thư]: & nbsp; list_of_vowels = ['a', 'e', 'i', 'o', 'u'] & nbsp; Nếu chữ cái trong list_of_vowels: & nbsp; & nbsp; & nbsp; trả về đúng & nbsp; khác: & nbsp; & nbsp; & nbsp; trả về falseletters = ['u', 'a', 'q', 'c', 'i', 'd', 'z', 'p', 'e'] filtered_object = filter [kiểm tra, chữ cái] in [ "Loại đối tượng được trả về là:", gõ [pectred_object]] đã lọc_list = list [piltered_object] in ["Danh sách các nguyên âm là:", Lọc_list]
Đầu ra -& nbsp;
Ví dụ 2. Sử dụng bộ lọc có chức năng Lambda trong danh sách
Trong ví dụ này, bạn sẽ sử dụng chức năng bộ lọc trên danh sách các số để tách số thành hai danh sách số lẻ và chẵn. Ở đây, sử dụng hàm Lambda thay vì hàm truyền thống trong tham số.
Nums = [5, 10, 23, 64, 42, 53, 93, 2, 0, -14, 6, -22, -13]
#Filter tất cả các số lẻ từ danh sách
ODD = Filter [Lambda P: P%2! = 0, Nums]
Đầu ra -& nbsp;
Ví dụ 2. Sử dụng bộ lọc có chức năng Lambda trong danh sách
Trong ví dụ này, bạn sẽ sử dụng chức năng bộ lọc trên danh sách các số để tách số thành hai danh sách số lẻ và chẵn. Ở đây, sử dụng hàm Lambda thay vì hàm truyền thống trong tham số.
Chương trình -& nbsp;
Kiểm tra def [thư]: & nbsp; list_of_vowels = ['a', 'e', 'i', 'o', 'u'] & nbsp; Nếu chữ cái trong list_of_vowels: & nbsp; & nbsp; & nbsp; trả về đúng & nbsp; khác: & nbsp; & nbsp; & nbsp; trả về falseletters = ['u', 'a', 'q', 'c', 'i', 'd', 'z', 'p', 'e'] filtered_object = filter [kiểm tra, chữ cái] in [ "Loại đối tượng được trả về là:", gõ [pectred_object]] đã lọc_list = list [piltered_object] in ["Danh sách các nguyên âm là:", Lọc_list]
Đầu ra -& nbsp;
Ví dụ 2. Sử dụng bộ lọc có chức năng Lambda trong danh sách
print[element]
Trong ví dụ này, bạn sẽ sử dụng chức năng bộ lọc trên danh sách các số để tách số thành hai danh sách số lẻ và chẵn. Ở đây, sử dụng hàm Lambda thay vì hàm truyền thống trong tham số.
Nums = [5, 10, 23, 64, 42, 53, 93, 2, 0, -14, 6, -22, -13]
#Filter tất cả các số lẻ từ danh sách
ODD = Filter [Lambda P: P%2! = 0, Nums]
#Filter tất cả các số chẵn từ danh sách
Chương trình -& nbsp;
Kiểm tra def [thư]: & nbsp; list_of_vowels = ['a', 'e', 'i', 'o', 'u'] & nbsp; Nếu chữ cái trong list_of_vowels: & nbsp; & nbsp; & nbsp; trả về đúng & nbsp; khác: & nbsp; & nbsp; & nbsp; trả về falseletters = ['u', 'a', 'q', 'c', 'i', 'd', 'z', 'p', 'e'] filtered_object = filter [kiểm tra, chữ cái] in [ "Loại đối tượng được trả về là:", gõ [pectred_object]] đã lọc_list = list [piltered_object] in ["Danh sách các nguyên âm là:", Lọc_list]
Đầu ra -& nbsp;
Ví dụ 2. Sử dụng bộ lọc có chức năng Lambda trong danh sách
Trong ví dụ này, bạn sẽ sử dụng chức năng bộ lọc trên danh sách các số để tách số thành hai danh sách số lẻ và chẵn. Ở đây, sử dụng hàm Lambda thay vì hàm truyền thống trong tham số.
Nums = [5, 10, 23, 64, 42, 53, 93, 2, 0, -14, 6, -22, -13]
#Filter tất cả các số lẻ từ danh sách
ODD = Filter [Lambda P: P%2! = 0, Nums]
#Filter tất cả các số chẵn từ danh sách
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; return true
else:
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; return false
Filtered_Object = Filter [Func, Books]
Đối với D trong Lọc_Object:
print[dict[d]["Title"]]
Đầu ra -& nbsp;
Giải thích -& nbsp;
Trong chương trình trên, bạn đã tạo một danh sách các từ điển có chứa các chi tiết về các cuốn sách như tiêu đề, tác giả, giá, v.v. Từ điển đó lớn hơn 500, khác sai. Sau đó, bạn đã sử dụng một bộ lọc trong danh sách các từ điển bằng cách sử dụng hàm được xác định trước đó. Đối tượng bộ lọc được trả về đã được lặp đi lặp lại để chỉ in tiêu đề của những cuốn sách đó được trả về bởi bộ lọc. Vì điều hiển nhiên, chỉ có những tựa game đó đã được trả lại với giá lớn hơn 500.
Mong muốn chuyển sang lĩnh vực lập trình? Tham gia khóa đào tạo & nbsp; Python & nbsp; và bắt đầu sự nghiệp của bạn như một lập trình viên Python chuyên nghiệp