Filtr jest wbudowaną funkcją Pythona. Filtruje określoną sekwencję lub element iteracyjny za pomocą funkcji, która sprawdza każdy element lub element w iterable jako prawdziwy lub fałszywy. Mówiąc prościej, funkcja filtra filtruje iterowalne przez funkcję. Dana funkcja testuje każdy element sekwencji lub iterowalny i zwraca prawdę, jeśli element spełnia podane kryteria. W rezultacie funkcja filter() konstruuje nowy iterator. Najczęściej używane iterowalne są listy, krotki i słowniki. W tym artykule krótko opisujemy funkcję filter() za pomocą przykładów.
Składnia funkcji filter()
Omówmy najpierw składnię funkcji filter(). Składnia funkcji filter() jest następująca:
filet (funkcja, iteracja lub sekwencja)Funkcja filtra przyjmuje jako argument dwa parametry, i.mi., funkcja i iterowalny. Funkcja sprawdza każdy element lub element iterowalności, czy jest prawdziwy, czy nie, według podanych kryteriów. Drugi argument to iterowalność lub sekwencja do filtrowania. Funkcja ocenia każdy element iterowalności według podanych kryteriów. Na koniec funkcja filter() zwraca filtrowany iterator.
Zobaczmy przykłady funkcji filter() i zaimplementujmy ją w naszym skrypcie Pythona. Używamy edytora spyder3 do tworzenia i uruchamiania skryptów Pythona.
Przykład 1: Filtruj listę liczb
Stwórzmy listę liczb i przefiltrujmy ją. W podanym przykładzie funkcja list_func() ocenia każdy element listy w określonym warunku. Jeśli element listy jest większy niż 5, funkcja zwraca prawdę i dodaje element do filtra.
#tworzenie listy numerówmoja_lista = [1,2,3,4,5,6,10,20,35,8,4,50,60]
#tworzenie funkcji
def list_func(listObj):
# oświadczenie warunkowe do sprawdzenia numeru
if(listObj>5):
zwróć Prawda
jeszcze:
powrót Fałsz
#używanie funkcji filtrowania do filtrowania iterowalnego przez list_func
liczby = filtr(funkcja_listy,moja_lista)
#drukowanie nowego iteratora
dla i w liczbach:
drukuj(i)
Wynik
Dane wyjściowe wyświetlają filtrowany iterator. Filtrowany iterator składa się ze wszystkich elementów, które są większe niż 5.
Przykład 2: Filtruj listę znaków
Stwórzmy listę znaków i zastosujmy funkcję filtrowania.
#tworzenie listy numerówmy_list = ['a','b','c','l','d','i','k','n','o','u','x']
#tworzenie funkcji
def list_func(listObj):
word_list=['l', 'i', 'n', 'u', 'x']
# instrukcja warunkowa do sprawdzenia znaku
if(listObj w word_list):
zwróć Prawda
jeszcze:
powrót Fałsz
#używanie funkcji filtrowania do filtrowania iterowalnego przez list_func
słowa = filtr(funkcja_listy,moja_lista)
#drukowanie nowego iteratora
dla mnie w słowach:
drukuj(i)
Wynik
Przykłady 3: Filtruj liczbę parzystą
Odfiltrujmy parzyste liczby z podanej listy liczb za pomocą funkcji filtrowania.
#tworzenie listy numerówmoja_lista = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
#tworzenie funkcji
def list_func(listObj):
# instrukcja warunkowa do sprawdzenia liczby parzystej
if(listObj%2==0):
zwróć Prawda
jeszcze:
powrót Fałsz
#używanie funkcji filtrowania do filtrowania iterowalnego przez list_func
liczby_parzyste= filtr(funkcja_listy,moja_lista)
#drukowanie nowego iteratora
dla mnie w liczbach parzystych:
drukuj(i)
Wynik
Przykłady 4: Filtruj rok przestępny
Odfiltrujmy lata przestępne z podanej listy lat za pomocą funkcji filtrowania.
#tworzenie listy numerówmoja_lista = [2010,2012,2014,2016,2018,2020,2022,2024]
#tworzenie funkcji
def list_func(listObj):
# oświadczenie warunkowe do sprawdzenia roku przestępnego
if(listObj%4==0):
zwróć Prawda
jeszcze:
powrót Fałsz
#używanie funkcji filtrowania do filtrowania iterowalnego przez list_func
rok_przestępny= filtr(funkcja_listy,moja_lista)
#drukowanie nowego iteratora
dla mnie w roku przestępnym:
drukuj(i)
Wynik
Wyjście wyświetla lata przestępne z podanej listy lat list.
Przykłady 5: użycie funkcji lambda z filter()
Funkcja filtra jest najczęściej używana z funkcją lambdada. Przekażmy funkcję lambda jako argument do funkcji filter().
#tworzenie listy numerówmoja_lista = [2010,2012,2014,2016,2018,2020,2022,2024]
#deklarowanie zmiennej parzystej
#even_number zmienna zawiera liczby parzyste
#używanie funkcji lambda
numer_parzysty = filtr(lambda listObj:listObj%2==0,moja_lista)
print("Lista liczb parzystych")
dla mnie w liczbie parzystej:
drukuj(i)
rok_przestępny = filtr(lambda listObj:listObj%4==0,moja_lista)
print("Lista lat przestępnych")
dla x w roku przestępnym:
drukuj(x)
Wynik
Wniosek
filter() jest wbudowaną funkcją Pythona, która służy do filtrowania iterowalności na danej funkcji. W tym artykule wyjaśniono funkcję filter() na przykładach.