Les compréhensions

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

 Compréhension de liste

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.

Compréhension de liste avec une condition

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...