A filter () metódus iterátort készít egy iterálható elemekből, amelyekre a függvény igaz.
Egyszerű szavakkal, a filter()
módszer szűri az adott iterálhatóságot egy olyan függvény segítségével, amely az iteráció minden elemét igaznak, vagy sem.
A filter()
módszer szintaxisa :
szűrő (függvény, iterálható)
filter () Paraméterek
filter()
A módszer két paramétert vesz fel:
- function - függvény, amely azt teszteli, hogy egy iterálható elem igaz vagy hamis értéket
ad-e vissza - iterálható - szűrhető iterálható, lehet bármilyen iterátor halmaza, listája, tömbje vagy tárolója
Visszatérési érték a szűrőből ()
filter()
A method egy olyan iterátort ad vissza, amely megfelelt az iterálható elemek minden elemének a funkcióellenőrzésen.
filter()
módszer egyenértékű:
# ha a funkció definiálva (az iterálható elem eleme, ha a függvény (elem)) # ha a függvény nincs (az iterálható elem eleme, ha az elem)
1. példa: Hogyan működik a filter () az iterálható listánál?
# 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)
Kimenet
A szűrt magánhangzók: aeio
Itt van egy betűk listája, és csak a magánhangzókat kell kiszűrnünk.
Használhatnánk egy for for ciklust, hogy áttekintsük a betűlista minden elemét, és egy másik listában tároljuk, de a Pythonban ez a folyamat egyszerűbb és gyorsabb a filter()
módszer alkalmazásával.
Van egy funkciónk, filterVowels
amely ellenőrzi, hogy egy betű magánhangzó-e vagy sem. Ez a függvény átkerül a filter()
metódusra a betűk listájával.
filter()
A metódus ezután minden betűt átad a filterVowels()
metódusnak, hogy ellenőrizze, igaz-e vagy sem. Végül iterátort hoz létre az igazra visszatérők közül (magánhangzók).
Mivel az iterátor nem maga tárolja az értékeket, végiglapozzuk és egyenként kinyomtatjuk a magánhangzókat.
2. példa: Hogyan működik a filter () módszer a szűrőfunkció nélkül?
# random list randomList = (1, 'a', 0, False, True, '0') filteredList = filter(None, randomList) print('The filtered elements are:') for element in filteredList: print(element)
Kimenet
A szűrt elemek a következők: 1 a True 0
Itt van egy véletlenszerű számlistánk, stringünk és logikai listánk a randomList-ben.
A randomList-et átadjuk a filter()
módszernek, amelynek első paramétere (szűrőfunkció): Nincs.
Ha a szűrőfunkció nincs, akkor a funkció alapértelmezés szerint Identity függvény, és a randomList minden egyes elemét ellenőrizzük, hogy igaz-e vagy sem.
Amikor végigpörgetjük a végső filteredList listát, megkapjuk azokat az elemeket, amelyek igazak: 1, a, True and '0'
(A '0' karakterláncként szintén igaz).