Python au lycée (5) : Les listes Méthode

Créer une liste en compréhension

Durée estimée
5 minutes
Votre progression

Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.

Créer un compte

Méthode

Pour écrire une liste en compréhension, on utilise la syntaxe :

liste = [ expression for variable in iterable if condition ]
  1. Identifier l'expression qui décrit chaque élément de la liste (par exemple $n$, $n^2$, $3n+1$...).
  2. Choisir l'itérable parcouru par la boucle for : un range(...), une autre liste, une chaîne de caractères...
  3. Ajouter une condition avec if uniquement si certains éléments doivent être filtrés. Sinon, on omet cette partie.
  4. Encadrer le tout par des crochets [ ... ] pour obtenir la liste.

Liste des carrés des entiers de 1 à 10

On souhaite construire la liste $[1^2, 2^2, 3^2, \ldots, 10^2]$.

Étape 1 : L'expression qui décrit chaque élément est $n^2$, soit n**2 en Python.

Étape 2 : On parcourt les entiers de 1 à 10 avec range(1, 11) (la borne supérieure est exclue).

Étape 3 : Aucun filtrage : on conserve tous les entiers.

Étape 4 : On écrit la liste en compréhension :

carres = [ n**2 for n in range(1, 11) ]
print(carres)   # affiche [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Multiples de 3 entre 10 et 50

On veut la liste des entiers $n$ tels que $10 \leqslant n \leqslant 50$ et $n$ est multiple de $3$.

Étape 1 : L'expression est simplement n (on garde l'entier tel quel).

Étape 2 : On parcourt range(10, 51) pour couvrir les entiers de 10 à 50 inclus.

Étape 3 : Un entier $n$ est multiple de 3 si $n \% 3 = 0$. On ajoute donc la condition if n % 3 == 0.

Étape 4 : On assemble :

multiples = [ n for n in range(10, 51) if n % 3 == 0 ]
print(multiples)   # affiche [12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48]

Remarque

La liste en compréhension est équivalente à une boucle for classique avec append :

multiples = []
for n in range(10, 51) :
    if n % 3 == 0 :
        multiples.append(n)

Les deux écritures produisent exactement la même liste. La compréhension est simplement plus concise.

Attention

Trois erreurs fréquentes :

  • Oublier les crochets : sans [ ... ] autour de l'expression, Python renvoie une erreur de syntaxe.
  • Confondre la place de if : la condition de filtrage se place après la boucle for, pas avant (ce serait un if/else différent).
  • Confondre $=$ et $==$ dans la condition : pour tester l'égalité, on utilise == (double signe), jamais = seul.

Pour s'entraîner