Filtro Python ()

Il metodo filter () costruisce un iteratore dagli elementi di un iterabile per il quale una funzione restituisce true.

In parole semplici, il filter()metodo filtra l'iterabile dato con l'aiuto di una funzione che verifica che ogni elemento dell'iterabile sia vero o no.

La sintassi del filter()metodo è:

 filtro (funzione, iterabile)

filter () Parametri

filter() il metodo accetta due parametri:

  • funzione - funzione che verifica se gli elementi di un iterabile restituiscono vero o falso
    Se Nessuno, la funzione assume per impostazione predefinita la funzione Identità - che restituisce false se alcuni elementi sono falsi
  • iterabile - iterabile che deve essere filtrato, potrebbe essere insiemi, elenchi, tuple o contenitori di qualsiasi iteratore

Valore restituito dal filtro ()

filter() restituisce un iteratore che ha superato il controllo della funzione per ogni elemento nell'iterabile.

filter() metodo è equivalente a:

 # quando la funzione è definita (elemento per elemento in iterabile if function (elemento)) # quando la funzione è None (elemento per elemento in iterabile if element)

Esempio 1: come funziona filter () per l'elenco iterabile?

 # list of letters letters = ('a', 'b', 'd', 'e', 'i', 'j', 'o') # function that filters vowels def filterVowels(letter): vowels = ('a', 'e', 'i', 'o', 'u') if(letter in vowels): return True else: return False filteredVowels = filter(filterVowels, letters) print('The filtered vowels are:') for vowel in filteredVowels: print(vowel)

Produzione

 Le vocali filtrate sono: aeio 

Qui abbiamo un elenco di lettere e dobbiamo filtrare solo le vocali in esso contenute.

Potremmo usare un ciclo for per scorrere ogni elemento nell'elenco delle lettere e memorizzarlo in un altro elenco, ma in Python questo processo è più semplice e veloce usando il filter()metodo.

Abbiamo una funzione filterVowelsche controlla se una lettera è una vocale o meno. Questa funzione viene passata al filter()metodo con l'elenco delle lettere.

filter()metodo quindi passa ogni lettera al filterVowels()metodo per verificare se restituisce vero o no. Alla fine, crea un iteratore di quelli che restituiscono true (vocali).

Poiché l'iteratore non memorizza i valori in sé, lo attraversiamo e stampiamo le vocali una per una.

Esempio 2: come funziona il metodo filter () senza la funzione di filtro?

 # random list randomList = (1, 'a', 0, False, True, '0') filteredList = filter(None, randomList) print('The filtered elements are:') for element in filteredList: print(element)

Produzione

 Gli elementi filtrati sono: 1 a True 0 

Qui abbiamo un elenco casuale di numeri, stringhe e valori booleani in randomList.

Passiamo randomList al filter()metodo con il primo parametro (funzione di filtro) come None.

Con la funzione di filtro come Nessuno, la funzione ha come valore predefinito la funzione Identità e ogni elemento in randomList viene controllato se è vero o no.

Quando eseguiamo il loop della filteredList finale, otteniamo gli elementi che sono veri: 1, a, True and '0'(anche '0' come stringa è vero).

Articoli interessanti...