← Retour au cours Tableaux 1D

Extension vs compréhension

[ … for … ]

Extension : énumérer ; compréhension : exprimer une règle.

scores = [7, 3, 4]
Définition en extension
[k for k in range(7)]
Entiers de 0 à 6
[k for k in range(7) if k%2==0]
Pairs
[n**2 for n in range(10)]
Carrés

Concaténation et répétition

+ *

Créent de nouvelles listes ; les originaux restent inchangés.

[1,2,3] + [4,5]
Concaténation
[0] * 4
Quatre zéros
[randint(...) for _ in range(5)]
Tirages distincts
[randint(...)] * 5
Piège : même valeur

💻 Exemples de code

Extension et compréhension

construction.py
scores = [7, 3, 4]
entiers_paires = [2 * k for k in range(10)]
carres = [nombre ** 2 for nombre in range(10)]
print(entiers_paires[:5])   # [0, 2, 4, 6, 8]

Concaténation, répétition et piège randint

concat_rep.py
from random import randint

print([1, 2, 3] + [4, 5])   # fusion
print([0] * 4)              # [0, 0, 0, 0]

# Correct : une valeur par tirage
des_comprehension = [randint(1, 6) for _ in range(5)]

# Piège : une seule valeur répétée
piege_repetition = [randint(1, 6)] * 5

📋 Aide-mémoire

Pairs sur 10 premiers

pairs = [2*k for k in range(10)]

Préférer la compréhension quand il y a un motif régulier.