Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Expressions génératrices
Tu connais les compréhensions de listes : [x**2 for x in range(10)]. Elles créent une liste complète en mémoire.
Si tu remplaces les crochets par des parenthèses, tu obtiens une expression génératrice : (x**2 for x in range(10)). Ca ressemble beaucoup, mais la différence est énorme : au lieu de créer toute la liste d'un coup, l'expression génératrice produit les valeurs une par une, à la demande.
Pour de petites données, ça ne change pas grand chose. Mais imagine calculer les carrés des nombres de 1 à un million : la liste prendrait beaucoup de mémoire, alors que le générateur n'en utilise presque pas.
Tu peux passer une expression génératrice directement à sum(), max(), min(), etc.
Écris une fonction somme_carres(n) qui renvoie la somme des carrés de 1 à n en utilisant une expression génératrice (pas de liste en mémoire).