Lorsqu'on écrit des programmes, on va chercher à obtenir un code le plus court possible (en utilisant des fonctions réutilisables, des fonctions récursives,...)
Les compréhensions sont une façon d'écrire (syntaxe) les boucles for sur une seule ligne
Dans cet exmple, on génère la liste des 10 premiers nombres entiers :
# avec une boucle for
liste_for = []
for i in range(1,11):
liste_for.append(i)
print(liste_for)
# avec une compréhension de liste
liste = [i for i in range(1,11)]
print(liste)
On voit clairement qu'avec une compréhension de liste tout tient sur une ligne alors qu'il faut plusieurs lignes de programme pour obtenir la même chose avec une boucle for.
Dans cet exmple, on génère la liste des nombres pairs parmi les 10 premiers nombres entiers :
# avec une boucle for
liste2_for = []
for i in range(1,11):
if i%2 == 0:
liste2_for.append(i)
print(liste2_for)
# avec une compréhension de liste
liste2 = [i for i in range(1,11) if i%2 == 0]
print(liste2)
Là encore, on voit nettement l'économie en terme de nombre de lignes de programme.
A venir : compréhension de dictionnaire, compréhension de set.
En cours de rédaction...