Funktsioon filter objektide filtreerimiseks Pythonis
Õppigem nüüd funktsiooni filter.
See võimaldab filtreerida loendite
ja muude iterreeritavate objektide elemente
mõne tingimuse järgi. Esimese parameetrina võtab see
funktsiooni, mis määrab kontrollitava tingimuse.
Teises parameetris määratakse loend,
mille elemente filtreeritakse.
Kui funktsioon tagastab True, siis
element jääb uude loendisse. Kui
tagastatakse False, siis element ei
kuulu loendisse.
Olgu meil loend:
lst = [1, 2, 3, 4, 5, 6]
Jätame sellesse ainult paarisarvud.
Selleks kirjutame lambda-funktsiooni abil,
et parameetrisse edastatud arv
jagub: 2-ga ilma jäägita:
res = filter(lambda num: num % 2 == 0, lst)
print(list(res))
Pärast koodi täitmist tagastatakse uus loend:
[2, 4, 6]
Antud loend numbritega:
lst = [1, 2, 3, 4, 5]
Kirjutage uude loendisse ainult paaritud numbrid sellest loendist.
Antud loend stringidega:
lst = ['abcd', 'ab', 'c', 'de', 'bc']
Kirjutage uude loendisse ainult stringid,
mille pikkus on 2.