Python

Python-suodatintoiminto

Python-suodatintoiminto

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 luominen
my_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 luominen
my_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 luominen
my_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 luominen
my_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 luominen
my_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ä.

Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...
Unity3D Tutorial
Introduction to Unity 3D Unity 3D is a powerful game development engine. It is cross platform that is it allows you to create games for mobile, web, d...