Pythonský filtr ()

Metoda filter () konstruuje iterátor z prvků iterovatelného, ​​pro které funkce vrací true.

Jednoduše řečeno, filter()metoda filtruje danou iterovatelnost pomocí funkce, která testuje každý prvek v iteraci, aby byl pravdivý nebo ne.

Syntaxe filter()metody je:

 filtr (funkce, iterovatelný)

filter () Parametry

filter() metoda má dva parametry:

  • funkce - funkce, která testuje, zda prvky iterovatelného vracejí true nebo false
    Pokud None, funkce implicitně používá funkci Identity - která vrací false, pokud jsou některé prvky false
  • iterovatelný - iterovatelný, který má být filtrován, mohou to být sady, seznamy, n-tice nebo kontejnery libovolných iterátorů

Návratová hodnota z filtru ()

filter() metoda vrací iterátor, který prošel kontrolou funkce pro každý prvek v iterovatelné metodě.

filter() metoda je ekvivalentní:

 # když je funkce definována (prvek pro prvek v iterovatelné funkci if (element)) # když funkce je None (prvek pro prvek v iterovatelné funkci if)

Příklad 1: Jak filter () funguje pro iterovatelný seznam?

 # 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ýstup

 Filtrované samohlásky jsou: aeio 

Zde máme seznam písmen a musíme v něm odfiltrovat pouze samohlásky.

Mohli bychom použít smyčku for k procházení každým prvkem v seznamu písmen a uložit jej do jiného seznamu, ale v Pythonu je tento proces jednodušší a rychlejší pomocí filter()metody.

Máme funkci, filterVowelskterá kontroluje, zda písmeno je samohláska nebo ne. Tato funkce je předána filter()metodě se seznamem písmen.

filter()metoda potom předá každé písmeno filterVowels()metodě, aby zkontrolovala, zda vrací hodnotu true nebo ne. Nakonec vytvoří iterátor těch, které vracejí true (samohlásky).

Vzhledem k tomu, že iterátor neukládá samotné hodnoty, projdeme jej smyčkou a jednu po druhé vytiskneme samohlásky.

Příklad 2: Jak funguje metoda filter () bez funkce filtru?

 # 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ýstup

 Filtrované prvky jsou: 1 a True 0 

Zde máme náhodný seznam čísel, řetězců a booleovských v randomList.

Předáme randomList filter()metodě s prvním parametrem (funkcí filtru) jako None.

S funkcí filtru jako Žádná je funkce výchozí funkcí identity a každý prvek v randomList je zkontrolován, zda je pravdivý nebo ne.

Když procházíme finálním filtrovaným seznamem, dostaneme prvky, které jsou pravdivé: 1, a, True and '0'('0' jako řetězec je také pravdivý).

Zajímavé články...