English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Corso di base di Python

Controllo dei flussi in Python

Funzione in Python

Tipi di dati in Python

Operazioni di file in Python

Oggetti e classi in Python

Date e ora in Python

Conoscenze avanzate di Python

Manuale di Python

Utilizzo e esempio di filter() in Python

Funzioni built-in di Python

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)

Parametri del metodo filter()

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

Valore restituito da filter()

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)

Esempio 1: come gestisce filter() una lista iterabile?

# 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.

Esempio 2: Come funziona il metodo filter() senza funzione filter?

# 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).

Funzioni built-in di Python