Tabella dei contenuti: Mostra/Chiudi
In Python la list comprehension è un metodo che ci permette di creare liste in modo chiaro e conciso.
Sintassi ed Esempi
Sintassi: risultato = [espressione for elemento in sequenza]
Esempio di utilizzo:
>>> [x*2 for x in range(6)]
[0, 2, 4, 6, 8, 10]
In questo caso otteniamo una lista di tutti gli elementi nella sequenza range(6) moltiplicati per due (x*2).
- x * 2 è l'espressione;
- x è l'elemento;
- range(6) è la sequenza.
Differenze con il ciclo for
Se volessimo ottenere una lista con lo stesso risultato, ma senza utilizzare la list comprehension dovremmo utilizzare un for loop:
>>>lista = []
>>>for x in range(6)
>>> lista.append(x*2)
>>>lista
[0, 2, 4, 6, 8, 10]
Il risultato è lo stesso, tuttavia ci sono delle differenze, specialmente nella quantità di codice: quest'ultimo metodo occupa tre righe, mentre quello precedente solamente una per la creazione della lista.
Aggiunere delle condizioni if/else/else if
Nella list comprehension è possibile inoltre aggiungere delle condizioni alla nostra espressione con delle if in questo modo:
>>> [numero for numero in range(10) if numero % 2 != 0]
[1, 3, 5, 7, 9]
Il risultato è una lista dei numeri dispari da 0 a 9 ed è equivalente al seguente blocco di codice:
>>> lista = []
>>> for numero in range(10):
>>> if numero % 2 != 0:
>>> lista.append(numero)
>>> lista
[1, 3, 5, 7, 9]