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]

Condividi sui Social