Filter-funktio objektien suodattamiseen Pythonissa
Opiskellaan nyt filter-funktiota.
Sen avulla voit suodattaa listojen
ja muiden iteroitavien objektien elementtejä
jonkin ehdon perusteella. Ensimmäisenä parametrina se ottaa vastaan
funktion, joka määrittää tarkastusehdon.
Toisena parametrina määritetään lista,
jonka elementtejä suodatetaan.
Jos funktio palauttaa True, niin
elementti pysyy uudessa listassa. Jos
palautetaan False, elementti ei
kuulu listaan.
Olkoon meillä lista:
lst = [1, 2, 3, 4, 5, 6]
Jätetään siihen vain parilliset numerot.
Tätä varten lambda-funktion avulla määritetään,
että parametriin välitetty luku
jaettuna 2:lla ei jää jakojäännöstä:
res = filter(lambda num: num % 2 == 0, lst)
print(list(res))
Koodin suorituksen jälkeen palautetaan uusi lista:
[2, 4, 6]
Annettu lista numeroita:
lst = [1, 2, 3, 4, 5]
Tallenna uuteen listaan vain parittomat numerot tästä listasta.
Annettu lista merkkijonoja:
lst = ['abcd', 'ab', 'c', 'de', 'bc']
Tallenna uuteen listaan vain ne merkkijonot,
joiden pituus on 2.