Suodatin on sisäänrakennettu Python-toiminto. Se suodattaa määritetyn sekvenssin tai iteroitavan toiminnon avulla, joka tarkistaa iterointikappaleen jokaisen alkion tai elementin olevan tosi tai väärä. Yksinkertaisesti sanottuna suodatintoiminto suodattaa iterable-toiminnon funktion kautta. Annettu funktio testaa jokaisen jakson tai iteroitavan kohteen ja palauttaa tosi, jos kohde täyttää annetut ehdot. Tämän seurauksena suodatin () -toiminto rakentaa uuden iteraattorin. Yleisimmin käytetyt toistettavat ovat luettelot, tuplit ja sanakirjat. Tässä artikkelissa kuvataan lyhyesti suodatin () -funktio esimerkkien avulla.
Suodatin () -funktion syntakse
Keskustellaan ensin suodatin () -funktion syntaksista. Suodatin () -syntaksi on seuraava:
filet (funktio, iteroitava tai sekvenssi)Suodatintoiminto ottaa argumenttina kaksi parametria, ts.e., toiminto ja iteroituva. Funktio tarkistaa kaikki iteroittavan elementin tai kohteen, olipa se totta vai ei, annettujen ehtojen mukaisesti. Toinen argumentti on iteroituva tai suodatettava sekvenssi. Funktio arvioi iteroitavan jokaisen kohteen annetuilla ehdoilla. Lopuksi suodatin () -toiminto palauttaa suodatetun iteraattorin.
Katsotaanpa esimerkkejä filter () -toiminnosta ja toteutetaan se Python-komentosarjassa. Käytämme spyder3-editoria Python-komentosarjojen luomiseen ja suorittamiseen.
Esimerkki 1: Suodata numeroluettelo
Luodaan luettelo numeroista ja suodatetaan se. Annetussa esimerkissä list_func () arvioi kaikki luettelokohdat tietyllä ehdolla. Jos luettelokohde on suurempi kuin 5, funktio palauttaa arvon true ja lisää kohteen suodattimeen.
#luetteloluettelon luominenmy_list = [1,2,3,4,5,6,10,20,35,8,4,50,60]
#funktion luominen
def list_func (listObj):
# ehdollinen lauseke numeron tarkistamiseksi
jos (listObj> 5):
palaa True
muu:
palauta False
# suodatintoiminnon avulla suodatetaan iterable list_func -toiminnon avulla
numerot = suodatin (list_func, my_list)
# uuden iteraattorin tulostaminen
i: lle numeroina:
tulosta (i)
Tuotos
Lähtö näyttää suodatetun iteraattorin. Suodatettu iteraattori koostuu kaikista yli 5: n kohteista.
Esimerkki 2: Suodata merkkiluettelo
Luodaan merkkiluettelo ja sovelletaan suodatintoimintoa.
#luetteloluettelon luominenmy_list = ['a', 'b', 'c', 'l', 'd', 'i', 'k', 'n', 'o', 'u', 'x']
#funktion luominen
def list_func (listObj):
word_list = ['l', 'i', 'n', 'u', 'x']
# ehdollinen lauseke merkin tarkistamiseksi
if (listObj sanaluettelossa):
palaa True
muu:
palauta False
# suodatintoiminnon avulla suodatetaan iterable list_func -toiminnon avulla
sanat = suodatin (list_func, my_list)
# uuden iteraattorin tulostaminen
sanalle i sanoin:
tulosta (i)
Tuotos
Esimerkit 3: Suodata parillinen luku
Suodatetaan parilliset luvut annetusta numeroluettelosta suodatintoiminnon avulla.
#luetteloluettelon luominenmy_list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
#funktion luominen
def list_func (listObj):
# ehdollinen lause parillisen luvun tarkistamiseksi
jos (listObj% 2 == 0):
palaa True
muu:
palauta False
# suodatintoiminnon avulla suodatetaan iterable list_func -toiminnon avulla
even_numbers = filter (list_func, my_list)
# uuden iteraattorin tulostaminen
i: lle parillisissa numeroissa:
tulosta (i)
Tuotos
Esimerkit 4: Suodata karkausvuosi
Suodatetaan karkausvuodet annetusta vuosiluettelosta suodatintoiminnon avulla.
#luetteloluettelon luominenmy_list = [2010,2012,2014,2016,2018,2020,2022,2024]
#funktion luominen
def list_func (listObj):
# ehdollinen lausuma karkausvuoden tarkistamiseksi
jos (listObj% 4 == 0):
palaa True
muu:
palauta False
# suodatintoiminnon avulla suodatetaan iterable list_func -toiminnon avulla
leap_year = filter (list_func, my_list)
# uuden iteraattorin tulostaminen
minulle i karkausvuonna:
tulosta (i)
Tuotos
Tuotos näyttää karkausvuodet annetusta vuosiluettelosta.
Esimerkit 5: lambda-toiminnon käyttäminen suodattimen () kanssa
Suodatintoimintoa käytetään enimmäkseen lambda-toiminnon kanssa. Annetaan lambda-funktio argumenttina suodattaa () -funktiota.
#luetteloluettelon luominenmy_list = [2010,2012,2014,2016,2018,2020,2022,2024]
#decareing even_number muuttuja
Muuttuja #even_number sisältää parilliset luvut
# käyttää lambda-toimintoa
even_number = filter (lambda listObj: listObj% 2 == 0, my_list)
tulosta ("Parillisten numeroiden luettelo")
i: lle parillisessa numerossa:
tulosta (i)
leap_year = filter (lambda listObj: listObj% 4 == 0, my_list)
print ("Karkausvuosien luettelo")
x: lle karkausvuodessa:
tulosta (x)
Tuotos
Johtopäätös
Suodatin () on sisäänrakennettu Python-toiminto, jota käytetään iteroitavan suodattamiseen tietylle toiminnolle. Tässä artikkelissa selitetään suodatin () -funktio esimerkeillä.