Python filter ()

Metóda filter () zostavuje iterátor z prvkov iterácie, pre ktoré funkcia vracia hodnotu true.

Jednoduchými slovami, filter()metóda filtruje danú iteráciu pomocou funkcie, ktorá testuje, či je každý prvok v iterácii pravdivý alebo nie.

Syntax filter()metódy je:

 filter (funkcia, opakovateľná)

filter () parametre

filter() metóda má dva parametre:

  • function - funkcia, ktorá testuje, či prvky iterovateľného návratu majú hodnotu true alebo false
    Ak None, funkcia predvolene používa funkciu Identity - ktorá vráti hodnotu false, ak sú niektoré prvky nepravdivé
  • iterovateľný - iterovateľný, ktorý sa má filtrovať, môžu to byť množiny, zoznamy, n-tice alebo kontajnery akýchkoľvek iterátorov

Návratová hodnota z filtra ()

filter() metóda vráti iterátor, ktorý prešiel kontrolou funkcie pre každý prvok v iterovateľnej podobe.

filter() metóda je ekvivalentná:

 # keď je definovaná funkcia (prvok pre prvok v iterovateľnom prvku if funkcia (element)) # keď je funkcia None (prvok pre prvok v iterovateľnom prvku if)

Príklad 1: Ako funguje filter () pre iterovateľný zoznam?

 # list of letters letters = ('a', 'b', 'd', 'e', 'i', 'j', 'o') # function that filters vowels def filterVowels(letter): vowels = ('a', 'e', 'i', 'o', 'u') if(letter in vowels): return True else: return False filteredVowels = filter(filterVowels, letters) print('The filtered vowels are:') for vowel in filteredVowels: print(vowel)

Výkon

 Filtrované samohlásky sú: aeio 

Tu máme zoznam písmen a musíme v ňom odfiltrovať iba samohlásky.

Mohli by sme použiť slučku for na slučku cez každý prvok v zozname písmen a uložiť ho do iného zoznamu, ale v Pythone je tento proces pomocou filter()metódy ľahší a rýchlejší .

Máme funkciu, filterVowelsktorá kontroluje, či je písmeno samohláska alebo nie. Táto funkcia sa odovzdá filter()metóde so zoznamom písmen.

filter()metóda potom odovzdá každé písmeno filterVowels()metóde na kontrolu, či vracia hodnotu true alebo nie. Nakoniec vytvorí iterátor tých, ktoré vracajú pravdu (samohlásky).

Pretože iterátor neuchováva samotné hodnoty, prešli sme ho slučkou a jednu po druhej vytlačili samohlásky.

Príklad 2: Ako funguje metóda filter () bez funkcie filtra?

 # random list randomList = (1, 'a', 0, False, True, '0') filteredList = filter(None, randomList) print('The filtered elements are:') for element in filteredList: print(element)

Výkon

 Filtrované prvky sú: 1 a True 0 

Tu máme náhodný zoznam čísel, reťazcov a boolovských hodnôt v randomList.

Metódu randomList odovzdáme filter()metóde s prvým parametrom (funkciou filtra) ako None.

Pri funkcii filtra ako None je funkcia predvolene nastavená na funkciu Identity a každý prvok v randomList sa kontroluje, či je alebo nie je pravdivý.

Keď prechádzame posledným filtrovaným zoznamom, získame prvky, ktoré sú pravdivé: 1, a, True and '0'(„0“, pretože reťazec je tiež pravdivý).

Zaujímavé články...