Les listes en compréhension
Exercice supplémentaire · niveau 2 · sciences numériques et technologie (seconde), chapitre 6 — Listes et simulations aléatoires · Manipuler une liste
Énoncé
Python permet d'écrire [i * i for i in range(1, 7)]. Découvrir cette écriture, la comparer à la construction par append, et l'utiliser pour obtenir la liste des multiples de inférieurs à , puis celle des carrés pairs.
Corrigé
carres = [i * i for i in range(1, 7)] # [1, 4, 9, 16, 25, 36]
multiples = [i for i in range(3, 50, 3)]
carres_pairs = [i * i for i in range(1, 11) if (i * i) % 2 == 0]
print(carres_pairs) # [4, 16, 36, 64, 100]
La lecture suit l'ordre de la phrase : « la liste des , pour allant de à , si la condition est vraie ».
C'est strictement équivalent à une boucle avec append, en trois lignes de moins. On s'arrête là où la lisibilité s'arrête : dès qu'il y a deux boucles imbriquées et un test, la boucle explicite redevient préférable.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.