single
Funzione Filter in Uso
Scorri per mostrare il menu
Hai già visto come le funzioni di ordine superiore come map permettano di applicare una funzione a ciascun elemento di una sequenza. Un'altra funzione di ordine superiore fondamentale in Python è filter.
La funzione filter viene utilizzata per selezionare elementi da una sequenza in base al fatto che soddisfino o meno una certa condizione. Prende due argomenti: una funzione che restituisce True o False per ciascun elemento e la sequenza da filtrare. Il risultato è un iteratore che contiene solo quegli elementi per cui la funzione restituisce True. Questo rende filter particolarmente utile quando si desidera estrarre elementi specifici da una lista, una tupla o un altro iterabile in base a un criterio, come numeri pari, valori positivi o stringhe di una certa lunghezza.
123456def is_even(n): return n % 2 == 0 numbers = [1, 2, 3, 4, 5, 6] even_numbers = list(filter(is_even, numbers)) print(even_numbers)
Questo codice utilizza la funzione filter() per creare una nuova lista contenente solo i numeri interi pari da una collezione esistente. Funziona definendo una funzione predicato, is_even(n). La funzione filter itera sulla lista numbers, applicando questo controllo a ogni elemento ed escludendo quelli che non soddisfano la condizione. Infine, l'oggetto filter risultante viene convertito nuovamente in una lista, producendo l'output.
Quando si utilizza la funzione filter, questa restituisce un oggetto filter, che è un iteratore — non una lista. Se si stampa direttamente il risultato di filter, si otterrà un output simile a:
<filter object at 0xfffec885eb30>
Per accedere ai valori filtrati come lista, è necessario convertire l'oggetto filter utilizzando list().
Scorri per iniziare a programmare
Utilizzerai la funzione filter per selezionare i numeri positivi da una lista.
- La funzione
is_positivedeve restituireTruese l'argomento è maggiore di zero, altrimentiFalse. - La funzione
filter_positivedeve utilizzare la funzionefilterinsieme ais_positiveper creare una nuova lista contenente solo i numeri positivi della lista di input. - La funzione deve restituire questa nuova lista.
- Ricorda di rimuovere
pass.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione