Les compréhensions de liste
Crée des listes en une ligne avec une syntaxe élégante et puissante.
⏱ 10 minutes
📂 intermediaire
#intermediaire
#listes
#comprehensions
#pythonique
Les compréhensions de liste
Les compréhensions permettent de créer une liste en une seule ligne, de manière très lisible. C'est du Python pythonique.
Comparaison "avant / après"
Avant (avec une boucle classique) :
carres = []
for x in range(5):
carres.append(x * x)
print(carres) # [0, 1, 4, 9, 16]
Après (avec une compréhension) :
carres = [x * x for x in range(5)]
print(carres) # [0, 1, 4, 9, 16]
Avec un filtre if
# Garder seulement les nombres pairs
pairs = [x for x in range(10) if x % 2 == 0]
print(pairs) # [0, 2, 4, 6, 8]
# Mettre en majuscules les mots de plus de 3 lettres
mots = ["chat", "ok", "Python", "lol"]
longs = [m.upper() for m in mots if len(m) > 3]
print(longs) # ['CHAT', 'PYTHON']
Avec une transformation
# Doubler chaque valeur
doubles = [n * 2 for n in [1, 2, 3]] # [2, 4, 6]
# Convertir str -> int
nombres = [int(x) for x in ["1", "2", "3"]] # [1, 2, 3]
Compréhensions de dictionnaires et sets
# Dictionnaire : carré de chaque nombre
carres_dict = {n: n*n for n in range(5)}
print(carres_dict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
# Set : lettres uniques en majuscules
lettres = {c.upper() for c in "hello"}
print(lettres) # {'H', 'E', 'L', 'O'}
Compréhensions imbriquées
# Toutes les paires (x, y) avec x < y
paires = [(x, y) for x in range(3) for y in range(3) if x < y]
print(paires) # [(0, 1), (0, 2), (1, 2)]
💡 Les compréhensions sont rapides et lisibles — mais ne les rends pas trop complexes. Si elles deviennent illisibles, repasse à une boucle for normale.
🧪 Quiz de validation
Réponds à toutes les questions. Il faut 70% de bonnes réponses pour valider le tuto !
🔒 Tu dois être connecté pour passer le quiz.