List Comprehension
Prima di approfondire le “List Comprehension” assicurati di conoscere le liste, set e dizionari.
La sintassi per le list comprehension consente, in modo semplice ed elegante, di costruire sequenze da altre sequenze.
Limitatamente alle loro possibilità sono un semplice, e più comprensibile, sostituto alla funzione lambda e alle funzioni map()
, filter()
e reduce()
.
Una list comprehension è formata da:
- Una sequenza (oggetto iterabile)
- Una variabile che rappresenti ogni elemento nella sequenza
- Un’espressione opzionale di controllo/elaborazione
- Un’espressione di output che produce elementi dell’elenco di output dai membri della sequenza di input che soddisfano il predicato.
Nel seguente esempio data una lista si trasformerà in una lista in cui ogni elemento è moltiplicato per due, ma solo se è un numero intero
>>> sequenza=[1,2,3,'a',4, 3.2]
>>> nuova_lista=[elemento*2 for elemento in sequenza if isinstance(elemento,int)]
>>> print(nuova_lista)
[2, 4, 6, 8]
In cui:
sequenza
è l’oggetto iterabileelemento
assume di volta in volta il valore di ogni elemento nella listaif isinstance(elemento,int)
è l’espressione opzionale di controllo/elaborazioneelemento\*2
è l’espressione di output