Hướng dẫn how do you write a filter function in python? - làm thế nào để bạn viết một hàm bộ lọc trong python?

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về hàm Python Filter () với sự trợ giúp của các ví dụ.

Hàm filter() trích xuất các phần tử từ một ITEBLE (danh sách, tuple, v.v.) trong đó một hàm trả về True.

Thí dụ

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# returns True if number is even
def check_even(number):
    if number % 2 == 0:
          return True  

    return False

# Extract elements from the numbers list for which check_even() returns True even_numbers_iterator = filter(check_even, numbers)

# converting to list even_numbers = list(even_numbers_iterator) print(even_numbers) # Output: [2, 4, 6, 8, 10]


bộ lọc () cú pháp

Cú pháp của nó là:

filter(function, iterable)

Lọc () đối số

Hàm filter() có hai đối số:

  • Chức năng - một chức năng - a function
  • Có thể lặp lại - một bộ giống như bộ, danh sách, bộ dữ liệu, v.v. - an iterable like sets, lists, tuples etc.

bộ lọc () giá trị trả về

Hàm filter() trả về một trình lặp.

Lưu ý: Bạn có thể dễ dàng chuyển đổi trình lặp lại thành các chuỗi như danh sách, bộ dữ liệu, chuỗi, v.v. You can easily convert iterators to sequences like lists, tuples, strings etc.


Ví dụ 1: Làm việc của bộ lọc ()

letters = ['a', 'b', 'd', 'e', 'i', 'j', 'o']

# a function that returns True if letter is vowel
def filter_vowels(letter):
    vowels = ['a', 'e', 'i', 'o', 'u']
    return True if letter in vowels else False

filtered_vowels = filter(filter_vowels, letters)

# converting to tuple vowels = tuple(filtered_vowels) print(vowels)

Đầu ra

('a', 'e', 'i', 'o')

Ở đây, hàm filter() chỉ trích xuất các chữ cái nguyên âm từ danh sách

filter(function, iterable)
3. Đây là cách mã này hoạt động:

  • Mỗi yếu tố của danh sách
    filter(function, iterable)
    3 được chuyển đến hàm
    filter(function, iterable)
    5.
  • Nếu
    filter(function, iterable)
    5 trả về True, phần tử đó được trích xuất nếu không nó được lọc ra.

Lưu ý: Tuy nhiên, cũng có thể lọc danh sách bằng cách sử dụng một vòng lặp, tuy nhiên, sử dụng hàm filter() sạch hơn nhiều. It's also possible to filter lists using a loop, however, using the filter() function is much more cleaner.


Ví dụ 2: Sử dụng hàm Lambda bên trong bộ lọc ()

numbers = [1, 2, 3, 4, 5, 6, 7]

# the lambda function returns True for even numbers 
even_numbers_iterator = filter(lambda x: (x%2 == 0), numbers)

# converting to list
even_numbers = list(even_numbers_iterator)

print(even_numbers)

Đầu ra

[2, 4, 6]

Ở đây, hàm filter() chỉ trích xuất các chữ cái nguyên âm từ danh sách

filter(function, iterable)
3. Đây là cách mã này hoạt động:

Mỗi yếu tố của danh sách

filter(function, iterable)
3 được chuyển đến hàm
filter(function, iterable)
5.


Nếu filter(function, iterable)5 trả về True, phần tử đó được trích xuất nếu không nó được lọc ra.

# random list
random_list = [1, 'a', 0, False, True, '0']

filtered_iterator = filter(None, random_list)

#converting to list filtered_list = list(filtered_iterator) print(filtered_list)

Đầu ra

[1, 'a', True, '0']

Ở đây, hàm filter() chỉ trích xuất các chữ cái nguyên âm từ danh sách

filter(function, iterable)
3. Đây là cách mã này hoạt động:

Giới thiệu về Bộ lọc trong Python

Filter () là một hàm tích hợp trong Python. Hàm bộ lọc có thể được áp dụng cho một điều khác nhau, chẳng hạn như danh sách hoặc từ điển và tạo một trình lặp mới. Trình lặp mới này có thể lọc ra các yếu tố cụ thể nhất định dựa trên điều kiện mà bạn cung cấp rất hiệu quả. & NBSP;

LƯU Ý: Một điều đáng tin cậy trong Python là một đối tượng mà bạn có thể lặp lại. Có thể lặp qua một mục có thể lặp lại và trả lại trong đó.

Có nhiều cách để lọc các yếu tố từ một danh sách. Điều này bao gồm sử dụng một vòng lặp đơn giản, hiểu danh sách, nâng cao cho vòng lặp, v.v. Điều này rất hữu ích, đặc biệt là khi bạn đang làm việc với các bộ dữ liệu lớn. & NBSP;

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;

ExamplesofFilter_1

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.

Chương trình -& nbsp;

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

#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

thậm chí = bộ lọc (lambda p: p%2 == 0, nums)

In ("Danh sách các số lẻ là:", Danh sách (lẻ))

In ("Danh sách số chẵn là:", Danh sách (chẵn))

Đầu ra -& nbsp;

ExamplesofFilter_2

Ví dụ 3. Sử dụng bộ lọc không có tham số chức năng

Nếu bạn sử dụng không làm đối số chức năng, phương thức bộ lọc sẽ loại bỏ bất kỳ phần tử nào khỏi ITEBLE mà nó coi là sai. Một số ví dụ về các yếu tố như vậy là các chuỗi trống, 0, niềng răng trống, boolean false, v.v. Hãy để xem ví dụ dưới đây.

Chương trình -& nbsp;

my_list = [5, -23, "", true, false, 0, 0.0, {}, []]

Filtered_Object = Filter (none, my_list)

Đối với phần tử trong Filtered_Object:

   print(element)

Đầu ra -& nbsp;

ExamplesofFilter_3

Giải thích -& nbsp;

Hàm bộ lọc chỉ trả về những yếu tố mà nó coi là đúng. Trong ví dụ này, tất cả các yếu tố giả mạo như niềng răng trống, 0 giá trị, chuỗi trống, v.v ... sẽ trả về sai. Do đó, chúng không được lọc ra.

Ví dụ 4. Sử dụng bộ lọc có danh sách từ điển

Trong ví dụ này, bạn sẽ tạo một danh sách các từ điển sẽ lưu trữ chi tiết về các cuốn sách như tên tác giả, ấn phẩm, giá cả, v.v ... Mục đích là cố gắng lọc các chi tiết của những cuốn sách đắt hơn một mức giá cố định. Hãy để kiểm tra ví dụ dưới đây.

Chương trình -& nbsp;

my_list = [5, -23, "", true, false, 0, 0.0, {}, []]

Filtered_Object = Filter (none, my_list)

Đối với phần tử trong Filtered_Object:

Đầu ra -& nbsp;

Giải thích -& nbsp;

Hàm bộ lọc chỉ trả về những yếu tố mà nó coi là đúng. Trong ví dụ này, tất cả các yếu tố giả mạo như niềng răng trống, 0 giá trị, chuỗi trống, v.v ... sẽ trả về sai. Do đó, chúng không được lọc ra.

Ví dụ 4. Sử dụng bộ lọc có danh sách từ điển

Trong ví dụ này, bạn sẽ tạo một danh sách các từ điển sẽ lưu trữ chi tiết về các cuốn sách như tên tác giả, ấn phẩm, giá cả, v.v ... Mục đích là cố gắng lọc các chi tiết của những cuốn sách đắt hơn một mức giá cố định. Hãy để kiểm tra ví dụ dưới đây.

sách = [

   else:

& nbsp; & nbsp; & nbsp; {"Tiêu đề": "Thiên thần và quỷ", "Tác giả": "Dan Brown", "Giá": 500},

& nbsp; & nbsp; & nbsp;

& nbsp; & nbsp; & nbsp;

   print(dict(d)["Title"])    

Đầu ra -& nbsp;

ExamplesofFilter_4

Giải thích -& nbsp;

Hàm bộ lọc chỉ trả về những yếu tố mà nó coi là đúng. Trong ví dụ này, tất cả các yếu tố giả mạo như niềng răng trống, 0 giá trị, chuỗi trống, v.v ... sẽ trả về sai. Do đó, chúng không được lọc ra.

Ví dụ 4. Sử dụng bộ lọc có danh sách từ điển

Làm thế nào để bạn tạo một bộ lọc trong Python?

Làm thế nào để lọc danh sách các yếu tố trong Python..
Đầu tiên, xác định một danh sách trống (được lọc) sẽ giữ các yếu tố từ danh sách điểm số ..
Thứ hai, lặp lại các yếu tố của danh sách điểm số. Nếu phần tử lớn hơn hoặc bằng 70, hãy thêm nó vào danh sách được lọc ..
Thứ ba, hiển thị danh sách được lọc lên màn hình ..

Chức năng bộ lọc trong Python với ví dụ là gì?

# Python Filter () Ví dụ Hàm # Gọi hàm kết quả = Filter (none, (1,0,6)) # Trả về tất cả các giá trị khác không kết quảGiá trị khác và giá trị thực # Hiển thị kết quả kết quả = danh sách (kết quả) Kết quả2 = list (result2) in (kết quả) in (kết quả2) Đầu ra: [1, 6] [1, true]returns all non-zero values result2 = filter(None,(1,0,False,True)) # returns all non-zero and True values # Displaying result result = list(result) result2 = list(result2) print(result) print(result2) Output: [1, 6] [1, True]

Hàm bộ lọc () trong Python là gì?

Python's Filter () là một chức năng tích hợp cho phép bạn xử lý một thứ có thể lặp lại và trích xuất những mục đáp ứng một điều kiện nhất định.Quá trình này thường được gọi là hoạt động lọc.a built-in function that allows you to process an iterable and extract those items that satisfy a given condition. This process is commonly known as a filtering operation.

Cú pháp của chức năng bộ lọc là gì?

Chức năng bộ lọc Cú pháp = bộ lọc (mảng, bao gồm, [if_empty]) mảng là phạm vi hoặc mảng chứa các giá trị bạn muốn được lọc.Bao gồm là bài kiểm tra logic trả về một mảng boolean (true/false) cùng chiều cao hoặc chiều rộng với mảng.