English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il metodo filter() costruisce un iteratore dagli elementi dell'oggetto iterabile, la funzione restituisce true.
In altre parole, il metodo filter() filtra l'iterable fornito con l'aiuto di una funzione che testa se ogni elemento dell'iterable è vero.
La sintassi del metodo filter() è:
filter(function, iterable)
Il metodo filter() accetta due parametri:
funzione-
-Funzione che testa se l'elemento dell'iterable restituisce true o false del test, se None, la funzione predefinita è la funzione Identity - Se qualsiasi elemento restituisce false, viene restituito false
iterable-L'iterable da filtrare può essereSet,Lista,TuplaO qualsiasi contenitore di iteratori
Il metodo filter() restituisce un iteratore, che passa ogni elemento dell'iterable al controllo della funzione.
Il metodo filter() è equivalente a:
# Quando la funzione è definita (elemento per elemento in iterable se funzione(elemento)) # Quando la funzione è vuota (elemento per elemento in iterable se elemento)
# Elenco ordinato per lettere alphabets = ['a', 'b', 'd', 'e', 'i', 'j', 'o'] # Funzione per filtrare le vocali def filterVowels(alphabet): vowels = ['a', 'e', 'i', 'o', 'u'] se(alphabet in vowels): ritorna True altrimenti: ritorna False filteredVowels = filter(filterVowels, alphabets) stampa('Le vocali filtrate sono:') per ogni vocale in filteredVowels: print(vowel)
Quando si esegue il programma, l'output è:
Le vocali filtrate sono: a e i o
Ecco, abbiamo elencato una lista di lettere in cui è necessario filtrare solo le vocali.
Possiamo esplorare l'elenco con un ciclo foralphabetiOgni elemento della lista, e lo memorizza in un'altra lista, ma in Python, l'uso del metodo filter() può rendere questo processo più semplice e veloce.
Abbiamo una funzione filterVowels che verifica se una lettera è una vocale. Questa funzione viene passata insieme alla lista di lettere al metodo filter().
Poi, il metodo filter() passa ogni lettera al metodo filterVowels() per verificare se restituisce true. Infine, crea un iteratore che restituisce true (vocali).
Poiché l'iteratore stesso non memorizza i valori, lo esploriamo e stampiamo ciascun vocale uno per uno.
# Lista casuale randomList = [1, 'a', 0, False, True, '0'] filteredList = filter(None, randomList) print('Gli elementi filtrati sono:') per ogni element in filteredList: print(element)
Quando si esegue il programma, l'output è:
Gli elementi filtrati sono: 1 a True 0
EccorandomListè una lista casuale composta da numeri, stringhe e valori booleani.
StiamorandomListil primo argomento passato a filter() (funzione di filtro) èmetodi di None.
quando si imposta la funzione filter a None, la funzione predefinita è la funzione Identity e si verificanel randomListse ogni elemento è true.
quando si esplora l'elenco finalequando si esegue filterListL'elemento ottenuto è true: (1, a, True e '0' come stringa, quindi '0' è anche true).