🐍 PyTutos

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.