Pythonin sisäänrakennettu filter()-funktio on myös tehokas; tietojen suodatuksen suorittamiseen sekvensseille, kuten listoille, monikoille ja merkkijonoille. Filter()-funktiota käytetään funktion lisäämiseen iteroitavan jokaiseen elementtiin (kuten luetteloon tai monitoon) ja palauttamaan toinen iterable, joka sisältää vain ne elementit, joille funktio palauttaa True-arvon. Näillä linjoilla filter() sallii meidän suodattaa elementit pois ryhmittelystä joidenkin ehtojen perusteella. Ensimmäinen argumentti voi olla Ei mitään, jos funktio ei ole käytettävissä ja palauttaa vain elementit, jotka ovat tosi.
Syntaksi:
filter (function, iterable)
Parametrit
toiminto: Se on toiminto. Jos arvoksi asetetaan Ei mitään, se palauttaa vain elementit, jotka ovat tosi.
Iteroitavissa: Mikä tahansa iteroitava sekvenssi, kuten lista, monikko ja merkkijono.
Molemmat parametrit ovat pakollisia.
Palata
Se palauttaa saman kuin funktio palauttaa.
Katsotaanpa joitakin esimerkkejä filter()-funktiosta ymmärtääksemme sen toiminnallisuuden.
Python-suodatin()-funktio Esimerkki 1
Tämä yksinkertainen esimerkki palauttaa arvot, jotka ovat suurempia kuin 5, käyttämällä suodatintoimintoa. Katso alla oleva esimerkki.
Koodi
# Python filter() function example def filterdata(x): if x>5: return x # Calling function result = filter(filterdata,(1,2,6)) # Displaying result print(list(result))
Lähtö:
[6]
Koodi määrittää funktion nimeltä filterdata, joka ottaa yhden argumentin x. Tässä funktiossa tarkistamme olettaen, että x on suurempi kuin 5, ja jos tämä on totta, tulostetaan x. Sitten kutsumme filter()-funktiota, joka välittää suodatintiedot pääargumenttina ja monikko (1, 2, 6) seuraavana argumenttina. Filter()-funktio soveltaa filterdata()-funktiota kaikkiin monikon elementteihin ja palauttaa iteraattorin, joka sisältää vain ne elementit, jotka täyttävät ehdon x > 5. Lopuksi muunnetaan iteraattori listaksi käyttämällä list()-funktiota. ja tulosta tulos.
Seuraavassa on pari lisäesimerkkiä filter()-menetelmän käyttämisestä Pythonissa:
Esimerkki 2:
Suodata tyhjät merkkijonot luettelosta:
Koodi
# Python filter() function example strings = [ '', 'hello', '', 'world', '' ] # Using filter() to remove empty strings from the list result = list(filter(lambda x: x != '', strings)) # Printing the result print(result)
Lähtö:
[ 'hello', 'world' ]
Tässä esimerkissä lambda-funktio tarkistaa, että jokainen merkkijono ei ole tyhjä, testaamalla olettaen, että se vastaa tyhjää merkkijonoa (''). Filter()-funktio palauttaa toisen iterablen, joka sisältää vain ei-tyhjät merkkijonot.
Esimerkki 3:
Suodata negatiiviset luvut luettelosta:
Koodi
# Python filter() function example numbers = [ 1, -2, 3, -4, 5, -6 ] # Using filter() to remove negative numbers from the list result = list(filter(lambda x: x >= 0, numbers)) # Printing the result print(result)
Lähtö:
[1, 3, 5]
Tässä esimerkissä lambda-funktio tarkistaa olettaen, että jokainen luku ei ole negatiivinen testaamalla siinä tapauksessa, että se on näkyvämpi kuin nolla (0) tai sitä vastaava. Filter()-funktio palauttaa toisen iterablen, joka sisältää vain ei-negatiiviset luvut.
Esimerkki 4:
Suodata kaksoiskappaleet luettelosta:
Koodi
# Python filter() function example numbers = [ 1, 2, 3, 2, 4, 3, 5 ] # Using filter() to remove duplicate numbers from the list result = list(filter(lambda x: numbers.count(x) == 1, numbers)) # Printing the result print(result)
Lähtö:
[ 1, 4, 5 ]
Tässä esimerkissä lambda-funktio tarkistaa, jos jokainen numero näkyy vain kerran numeroluettelossa, laskemalla, kuinka usein se näkyy (numbers.count(x)) ja testaamalla, jos luku vastaa 1. Filter()-funktio palauttaa toisen iteroitavan, joka sisältää vain yksilölliset numerot.
Huomautus: On tärkeää, että Python 3:ssa filter()-funktio palauttaa iteroitavan, mikä tarkoittaa, että haluat todella muuttaa sen kokonaan luetteloksi (kuten yllä olevissa esimerkeissä näkyy) sisällyttääksesi sen luettelona. Siitä huolimatta Python 2:ssa filter()-funktio palauttaa tietysti luettelon.
Johtopäätös:
Lopuksi filter()-funktio on tehokas työkalu tietojen käsittelyyn Pythonissa. Suodattamalla iterable ennalta määritettyjen ehtojen perusteella, voit erottaa nopeasti ja tehokkaasti todella haluamasi tiedot. Voit myös käyttää suodatinta () sekoitettuna muiden Python-toimintojen kanssa tehdäksesi hämmentävämpiä tietojen käsittelyä.