Le comprehension permettono l’utilizzo di una sintassi breve quando si vuole creare una nuova lista proveniente da una lista di valori preesistente.
Esempio:
Sulla base di una lista di frutti, vogliamo una nuova lista , che contiene solo valori che abbiano la lettera “a”.
Senza la comprehension dovremmo utilizzare la dichiarazione for:
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits:
if "a" in x:
newlist.append(x)
print(newlist)
Mentre con una comprehension possiamo usare una sola riga di codice:
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if "a" in x]
print(newlist)
[‘apple’, ‘banana’, ‘mango’]
Altro esempio per aggiungere una decina ai numeri.
L = [1,2,3,4,5]
L = [x+10 for x in L]
print(L)
[11, 12, 13, 14, 15]
Extended comprehension
Alla comprehension si può aggiungere una condizione.
L = [1,2,3,4,5]
L = [x+10 for x in L if x%2 == 0]
print(L)
[12, 14]
Altri esempi
pws = [x**2 for x in range(10) if x > 4]
print(pws)
[25, 36, 49, 64, 81]
strings = [x+y for x in 'abc' for y in 'def']
print(strings)
[‘ad’, ‘ae’, ‘af’, ‘bd’, ‘be’, ‘bf’, ‘cd’, ‘ce’, ‘cf’]