Filtr je vestavěná funkce Pythonu. Filtruje zadanou sekvenci nebo iterovatelnou pomocí funkce, která kontroluje každou položku nebo prvek v iterovatelné, aby byla pravdivá nebo nepravdivá. Zjednodušeně řečeno, funkce filtru filtruje iterovatelnou funkci. Daná funkce testuje každou položku sekvence nebo iterovatelnou a vrací hodnotu true, pokud položka splňuje zadaná kritéria. Výsledkem je, že funkce filter () vytvoří nový iterátor. Nejčastěji používané iterovatelné jsou seznamy, n-tice a slovníky. Tento článek stručně popisuje funkce filter () pomocí příkladů.
Syntaxe funkce filter ()
Pojďme nejprve probrat syntaxi funkce filter (). Syntaxe funkce filter () je následující:
filet (funkce, iterovatelné nebo sekvence)Funkce filtru bere jako argument dva parametry, tj.E., funkce a iterovatelná. Funkce kontroluje každý prvek nebo položku iterovatelné, ať už je to pravda nebo ne, podle daných kritérií. Druhý argument je iterovatelný nebo má být filtrována sekvence. Funkce vyhodnotí každou položku iterace podle daných kritérií. Nakonec funkce filter () vrátí filtrovaný iterátor.
Podívejme se na příklady funkce filter () a implementujme je do našeho skriptu Pythonu. K vytváření a spouštění skriptů Pythonu používáme editor spyder3.
Příklad 1: Filtrování seznamu čísel
Vytvořme seznam čísel a vyfiltrujme ho. V uvedeném příkladu list_func () vyhodnotí každou položku seznamu za dané podmínky. Pokud je položka seznamu větší než 5, vrátí funkce true a přidá položku do filtru.
#vytvoření seznamu číselmy_list = [1,2,3,4,5,6,10,20,35,8,4,50,60]
# vytvoření funkce
def list_func (listObj):
# podmíněné prohlášení ke kontrole čísla
if (listObj> 5):
vrátit True
jiný:
vrátit False
#použití funkce filtru k filtrování iterace pomocí list_func
numbers = filter (list_func, my_list)
# tisk nového iterátoru
pro i v číslech:
tisk (i)
Výstup
Výstup zobrazí filtrovaný iterátor. Filtrovaný iterátor je vytvořen všemi těmi položkami, které jsou větší než 5.
Příklad 2: Filtrování seznamu znaků
Vytvořme seznam znaků a aplikujme funkci filtru.
#vytvoření seznamu číselmy_list = ['a', 'b', 'c', 'l', 'd', 'i', 'k', 'n', 'o', 'u', 'x']
# vytvoření funkce
def list_func (listObj):
word_list = ['l', 'i', 'n', 'u', 'x']
# podmíněné prohlášení ke kontrole znaku
if (listObj in word_list):
vrátit True
jiný:
vrátit False
#použití funkce filtru k filtrování iterace pomocí list_func
slova = filtr (list_func, my_list)
# tisk nového iterátoru
pro i slovy:
tisk (i)
Výstup
Příklady 3: Filtrování sudého čísla
Pojďme filtrovat sudá čísla z daného seznamu čísel pomocí funkce filtru.
#vytvoření seznamu číselmy_list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
# vytvoření funkce
def list_func (listObj):
# podmíněné prohlášení ke kontrole sudého čísla
if (listObj% 2 == 0):
vrátit True
jiný:
vrátit False
#použití funkce filtru k filtrování iterace pomocí list_func
even_numbers = filter (list_func, my_list)
# tisk nového iterátoru
pro i v sudých číslech:
tisk (i)
Výstup
Příklady 4: Filtrování přestupného roku
Pojďme filtrovat přestupné roky z daného seznamu let pomocí funkce filtru.
#vytvoření seznamu číselmy_list = [2010,2012,2014,2016,2018,2020,2022,2024]
# vytvoření funkce
def list_func (listObj):
# podmíněné prohlášení ke kontrole přestupného roku
if (listObj% 4 == 0):
vrátit True
jiný:
vrátit False
#použití funkce filtru k filtrování iterace pomocí list_func
leap_year = filter (list_func, my_list)
# tisk nového iterátoru
pro i v leap_year:
tisk (i)
Výstup
Výstup zobrazuje přestupné roky z daného seznamu let.
Příklady 5: použití funkce lambda s filter ()
Funkce filtru se většinou používá s funkcí lambda. Pojďme předat funkci lambda jako argument funkci filter ().
#vytvoření seznamu číselmy_list = [2010,2012,2014,2016,2018,2020,2022,2024]
# deklarování proměnné sudé_číslo
Proměnná #even_number obsahuje sudá čísla
# pomocí funkce lambda
even_number = filter (lambda listObj: listObj% 2 == 0, my_list)
tisk ("Seznam sudých čísel")
pro i v even_number:
tisk (i)
leap_year = filter (lambda listObj: listObj% 4 == 0, my_list)
tisk ("Seznam přestupných let")
pro x v leap_year:
tisk (x)
Výstup
Závěr
Filter () je vestavěná funkce Pythonu, která se používá k filtrování iterovatelných pro danou funkci. Tento článek vysvětluje funkci filter () s příklady.