Python

Funkcia Pythonovho filtra

Funkcia Pythonovho filtra

Filter je zabudovaná funkcia Pythonu. Filtruje zadanú postupnosť alebo iteráciu pomocou funkcie, ktorá kontroluje, či sú jednotlivé položky alebo prvky v iterovateľnosti pravdivé alebo nepravdivé. Zjednodušene povedané, funkcia filtra filtruje iteráciu pomocou funkcie. Daná funkcia otestuje každú položku v poradí alebo iterovateľnosti a vráti hodnotu true, ak položka spĺňa dané kritériá. Vo výsledku vytvorí funkcia filter () nový iterátor. Najčastejšie používanou iterovateľnou sú zoznamy, n-tice a slovníky. Tento článok v krátkosti popisuje funkciu filter () pomocou príkladov.

Syntax funkcie filter ()

Najskôr si povedzme syntax funkcie filter (). Syntax funkcie filter () je nasledovná:

filet (funkcia, iterovateľná alebo postupná)

Funkcia filtra berie ako argument dva parametre, t.j.e., funkcia a iterovateľná. Funkcia kontroluje každý prvok alebo položku iterovateľnej tabuľky, či už je to pravda alebo nie, podľa daných kritérií. Druhý argument je iterovateľný alebo sekvencia, ktorá sa má filtrovať. Funkcia vyhodnotí každú položku iterácie podľa daných kritérií. Nakoniec funkcia filter () vráti filtrovaný iterátor.

Pozrime sa na príklady funkcie filter () a implementujme ich do nášho skriptu Python. Na vytváranie a spúšťanie skriptov Python používame editor spyder3.

Príklad 1: Filtrovanie zoznamu čísel

Vytvorme zoznam čísel a vyfiltrujme ho. V uvedenom príklade funkcia list_func () vyhodnotí každú položku zoznamu za daných podmienok. Ak je položka zoznamu väčšia ako 5, potom funkcia vráti hodnotu true a pridá položku do filtra.

#vytvorenie zoznamu čísel
my_list = [1,2,3,4,5,6,10,20,35,8,4,50,60]
#vytvorenie funkcie
def list_func (listObj):
# podmienené vyhlásenie na kontrolu čísla
if (listObj> 5):
návrat Pravda
inak:
návrat False
#použitím funkcie filtra môžete filtrovať iterovateľné súbory cez list_func
numbers = filter (list_func, my_list)
#tlač nového iterátora
pre i v číslach:
tlač (i)

Výkon
Výstup zobrazí filtrovaný iterátor. Filtrovaný iterátor je zostavený zo všetkých položiek, ktoré sú väčšie ako 5.

Príklad 2: Filtrovanie zoznamu znakov

Vytvoríme zoznam znakov a použijeme funkciu filtra.

#vytvorenie zoznamu čísel
my_list = ['a', 'b', 'c', 'l', 'd', 'i', 'k', 'n', 'o', 'u', 'x']
#vytvorenie funkcie
def list_func (listObj):
word_list = ['l', 'i', 'n', 'u', 'x']
# podmienené vyhlásenie na kontrolu znaku
if (listObj v zozname slov):
návrat Pravda
inak:
návrat False
#použitím funkcie filtra môžete filtrovať iterovateľné súbory cez list_func
slová = filter (list_func, my_list)
#tlač nového iterátora
pre i slovami:
tlač (i)

Výkon

Príklady 3: Filtrujte párne číslo

Vyfiltrujme párne čísla z daného zoznamu čísel pomocou funkcie filtra.

#vytvorenie zoznamu čísel
my_list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
#vytvorenie funkcie
def list_func (listObj):
# podmienené vyhlásenie na kontrolu párneho čísla
if (listObj% 2 == 0):
návrat Pravda
inak:
návrat False
#použitím funkcie filtra môžete filtrovať iterovateľné súbory cez list_func
even_numbers = filter (list_func, my_list)
#tlač nového iterátora
pre i v párnych číslach:
tlač (i)

Výkon

Príklady 4: Filtrovať priestupný rok

Poďme filtrovať priestupné roky z daného zoznamu rokov pomocou funkcie filtra.

#vytvorenie zoznamu čísel
my_list = [2010,2012,2014,2016,2018,2020,2022,2024]
#vytvorenie funkcie
def list_func (listObj):
# podmienené vyhlásenie na kontrolu priestupného roku
if (listObj% 4 == 0):
návrat Pravda
inak:
návrat False
#použitím funkcie filtra môžete filtrovať iterovateľné súbory cez list_func
leap_year = filter (list_func, my_list)
#tlač nového iterátora
pre i v leap_year:
tlač (i)

Výkon

Na výstupe sú zobrazené priestupné roky z daného zoznamu rokov.

Príklady 5: použitie funkcie lambda s filter ()

Funkcia filtra sa väčšinou používa s funkciou lambda. Poďme odovzdať funkciu lambda ako argument pre funkciu filter ().

#vytvorenie zoznamu čísel
my_list = [2010,2012,2014,2016,2018,2020,2022,2024]
# deklarovanie premennej párne_číslo
Premenná # každé_číslo obsahuje párne čísla
#používanie funkcie lambda
even_number = filter (lambda listObj: listObj% 2 == 0, my_list)
print ("Zoznam párnych čísel")
pre i v even_number:
tlač (i)
leap_year = filter (lambda listObj: listObj% 4 == 0, my_list)
print ("Zoznam priestupných rokov")
pre x v leap_year:
tlačiť (x)

Výkon

Záver

Filter () je vstavaná funkcia Pythonu, ktorá sa používa na filtrovanie iterovateľného kódu pre danú funkciu. Tento článok vysvetľuje funkciu filter () na príkladoch.

Hry Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
OpenRA je herný engine Libre / Free Real Time Strategy, ktorý obnovuje rané hry z Westwoodu, ako napríklad klasické Command & Conquer: Red Alert. Dist...
Hry Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Emulátor Dolphin vám umožní hrať vybrané hry Gamecube a Wii na osobných počítačoch Linux (PC). Emulátor Dolphin, ktorý je voľne dostupným emulátorom ...
Hry Ako používať GameConqueror Cheat Engine v Linuxe
Ako používať GameConqueror Cheat Engine v Linuxe
Tento článok obsahuje sprievodcu používaním cheatovacieho modulu GameConqueror v systéme Linux. Mnoho používateľov, ktorí hrajú hry v systéme Windows,...