Python filter ()

Metoda filter () izdela iterator iz elementov iterablea, za katerega funkcija vrne true.

Z enostavnimi besedami filter()metoda filtrira dani iterable s pomočjo funkcije, ki preizkusi, ali je vsak element v iteralu resničen ali ne.

Sintaksa filter()metode je:

 filter (funkcija, iterable)

filter () Parametri

filter() metoda ima dva parametra:

  • function - funkcija, ki preizkuša, ali elementi iterabilnega znaka vrnejo true ali
    false.
  • iterable - iterable, ki ga je treba filtrirati, lahko so nizi, seznami, nabori ali vsebniki katerega koli iteratorja

Vrnjena vrednost iz filtra ()

filter() vrne iterator, ki je opravil preverjanje funkcije za vsak element v iterableu.

filter() metoda enakovredna:

 # ko je funkcija definirana (element za element v iterable, če je funkcija (element)) # ko je funkcija None (element za element v iterable if element)

Primer 1: Kako filter () deluje za seznam, ki se lahko ponovi?

 # 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)

Izhod

 Filtrirani samoglasniki so: aeio 

Tukaj imamo seznam črk in v njem moramo filtrirati samo samoglasnike.

Z zanko for bi lahko zavili vsak element na seznamu črk in ga shranili na drug seznam, toda v Pythonu je ta postopek enostavnejši in hitrejši z uporabo filter()metode.

Imamo funkcijo, filterVowelski preverja, ali je črka samoglasnik ali ne. Ta funkcija se prenese na filter()metodo s seznamom črk.

filter()metoda nato vsaki črki posreduje filterVowels()metodo, da preveri, ali vrne true ali ne. Na koncu ustvari iterator tistih, ki vrnejo true (samoglasniki).

Ker iterator ne shrani vrednosti sam, ga preletimo in izpišemo samoglasnike enega za drugim.

Primer 2: Kako metoda filter () deluje brez funkcije 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)

Izhod

 Filtrirani elementi so: 1 a True 0 

Tu imamo naključni seznam števil, nizov in logičnih vrednosti v randomList.

Metodi randomList posredujemo filter()s prvim parametrom (funkcija filtra) kot None.

Če je funkcija filtra nič, funkcija privzeto uporabi funkcijo Identiteta in vsak element v randomList se preveri, ali je res ali ne.

Ko preletimo končni filteredList, dobimo elemente, ki so resnični: 1, a, True and '0'('0' kot niz je tudi res).

Zanimive Članki...