Leçon 5 / 10 — Chapitre 5: Itérateurs, générateurs et context managers
Expressions génératrices
Une expression génératrice, déjà entrevue dans Python Intermédiaire (sum(x for x in liste)), est une compréhension entre parenthèses plutôt qu'entre crochets — elle produit ses valeurs une par une, comme une fonction génératrice, sans construire de liste en mémoire.
carres = (n * n for n in range(5))
print(type(carres))
for c in carres:
print(c)
type(carres) affiche <class 'generator'> : (n * n for n in range(5)) crée un générateur, pas une liste — contrairement à [n * n for n in range(5)] (vu dans Python Intermédiaire), qui construit immédiatement une liste complète en mémoire.
Un générateur ne se parcourt qu'une seule fois : une fois épuisé par une boucle for ou converti en liste, le reparcourir ne produit plus rien.
carres = (n * n for n in range(3))
print(list(carres))
print(list(carres))
Ce code affiche [0, 1, 4], puis [] (liste vide) : le second list(carres) trouve le générateur déjà épuisé par le premier appel — contrairement à une liste, qui reste parcourable autant de fois qu'on le souhaite.
À vous de jouer : créez une expression génératrice, parcourez-la une première fois avec une boucle for, puis tentez de la reparcourir et observez le résultat.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 87 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès