Funzione filter per filtrare oggetti in Python
Studiamo ora la funzione filter.
Permette di filtrare elementi di liste
e altri oggetti iterabili in base a una
determinata condizione. Come primo parametro accetta una
funzione, che definisce la condizione da verificare.
Nel secondo parametro si specifica la lista
i cui elementi verranno filtrati.
Se la funzione restituisce True,
l'elemento rimane nella nuova lista. Se
restituisce False, l'elemento non
entrerà nella lista.
Supponiamo di avere una lista:
lst = [1, 2, 3, 4, 5, 6]
Lasciamo in essa solo i numeri pari.
A tale scopo, utilizzando una funzione lambda, specifichiamo
che il numero passato come suo parametro
deve essere divisibile per 2 senza resto:
res = filter(lambda num: num % 2 == 0, lst)
print(list(res))
Dopo l'esecuzione del codice, verrà restituita una nuova lista:
[2, 4, 6]
Data una lista di numeri:
lst = [1, 2, 3, 4, 5]
Registra in una nuova lista solo i numeri dispari di questa lista.
Data una lista di stringhe:
lst = ['abcd', 'ab', 'c', 'de', 'bc']
Registra in una nuova lista solo le stringhe
la cui lunghezza è uguale a 2.