Une list comprehension est une façon courte et lisible de créer une liste à partir d'une autre séquence, en une seule ligne.
Forme classique (avec for) :
resultat = []
for x in range(1, 11):
resultat.append(x ** 2)Équivalent en compréhension (1 ligne) :
resultat = [x ** 2 for x in range(1, 11)]Syntaxe générale
[expression for variable in sequence]Lecture mentale : "je veux une liste qui contient expression pour chaque variable dans sequence".
# Carrés de 1 à 10
[x ** 2 for x in range(1, 11)]
# → [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]# Doubler chaque élément
[x * 2 for x in [1, 2, 3]]
# → [2, 4, 6]# Longueur de chaque mot
mots = ['python', 'sql', 'data']
[len(m) for m in mots]
# → [6, 3, 4]# Mettre en majuscules
[m.upper() for m in mots]
# → ['PYTHON', 'SQL', 'DATA']- Plus court (1 ligne au lieu de 3)
- Plus rapide (Python optimise)
- Lisible pour les transformations simplesNe pas en abuser : si l'expression est complexe ou s'il y a plusieurs conditions, une boucle for classique reste plus lisible.
La leçon suivante (Day 21) ajoute un filtre avec if.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →