Mathématiques (spécialité) · PremièreÉpreuve anticipée de mathématiques
Listes en Python et compréhension de listes : cours de 1re
Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur
L'essentiel
- Une liste Python regroupe des éléments rangés dans l'ordre ; on lit l'élément d'indice avec
L[k], et le premier indice vaut 0. - On construit une liste par énumération (
[2, 4, 6]), par boucle avecappend, ou en compréhension ([f(x) for x in ...]). - Une liste en compréhension reprend la forme d'un ensemble défini par une propriété : une expression, une boucle, éventuellement une condition
if. - Pour tracer une fonction ou étudier une suite, on calcule d'abord la liste des abscisses, puis la liste des images en compréhension.
- Pièges classiques : indice hors limites,
rangequi s'arrête avant sa borne finale, confusion entre filtrer (if) et transformer (l'expression).
Pourquoi utiliser des listes
Jusqu'ici, une variable contenait une seule valeur : un nombre, un texte. Or, en mathématiques, tu manipules souvent des familles de nombres : les termes d'une suite, les valeurs d'une fonction pour plusieurs abscisses, les notes d'une classe, les résultats d'une série de tirages. Écrire une variable par valeur devient vite impossible. Il faut un objet capable de contenir plusieurs valeurs à la fois : c'est le rôle de la liste.
Le programme de première introduit cette notion, qui trouve naturellement sa place dans de nombreuses situations d'algorithmique. 1 Les documents d'accompagnement choisissent de ne traiter que les listes : aucune autre famille de collections n'est présentée, et on ne cherche pas à séparer ce qu'est une liste de ce qu'est un tableau. 1 Dans ce cours, tu vas donc apprendre à créer une liste, à la lire, à la parcourir, puis à la construire d'un seul coup avec une écriture très compacte : la compréhension de liste.
Créer une liste et lire ses éléments
Une liste garde l'ordre dans lequel tu as rangé les éléments, et elle accepte les répétitions : [3, 3, 5] est une liste valide, alors que l'ensemble s'écrit plutôt . C'est une différence importante avec les ensembles des mathématiques : deux listes comportant les mêmes nombres dans un ordre différent sont deux listes différentes.
| Indice | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| Valeur de L | 4 | 7 | 9 | 12 |
| Notation | L[0] | L[1] | L[2] | L[3] |
Modifier une liste et la parcourir
Une liste n'est pas figée : tu peux changer un élément, en ajouter ou en retirer. C'est ce qui la distingue d'un n-uplet (tuple), qui est une liste immuable. 4
L = [4, 7, 9, 12]
L[1] = 70 # L vaut maintenant [4, 70, 9, 12]
L.append(15) # L vaut maintenant [4, 70, 9, 12, 15]
L'affectation L[1] = 70 remplace l'élément d'indice 1. La méthode append ajoute un élément à la fin.
Construire une liste avec une boucle
Souvent, on ne connaît pas la liste à l'avance : on veut la calculer. La méthode classique consiste à partir d'une liste vide, puis à ajouter les éléments un par un dans une boucle. La liste joue alors le rôle d'un « accumulateur ».
- Liste videCréer L = [] avant la boucle
- Parcourirfor n in range(...) : choisir les valeurs
- CalculerObtenir la valeur à ranger à partir de n
- AjouterL.append(valeur) place l'élément à la fin
La compréhension de liste
La boucle avec append fonctionne, mais elle prend quatre lignes pour une idée simple : « les carrés des entiers de 0 à 9 ». Les mathématiciens écrivent une telle collection en une seule expression, par exemple . Python permet une écriture très proche.
Filtrer avec une condition
On peut ne garder que certains éléments de la collection de départ. On ajoute alors, à la fin, un test introduit par if. Cette étape de filtrage est précisément ce qui rapproche la compréhension de liste de la définition d'un ensemble par une propriété. 3
Listes, fonctions et suites
La compréhension de liste sert beaucoup en mathématiques. Parmi les usages cités par les ressources officielles figure le tracé d'une courbe : on y construit la liste des images à l'aide d'une compréhension du type [f(x) for x in abscisse]. 1 On calcule d'abord la liste des abscisses, puis, en une ligne, la liste des images correspondantes. Les deux listes ont la même longueur et se correspondent terme à terme.
Listes de listes et de couples
Les éléments d'une liste peuvent eux-mêmes être des listes ou des couples. C'est ainsi qu'on représente des données organisées en table : les ressources officielles décrivent ces données comme une liste de p-uplets nommés. 2 Un p-uplet est une suite de valeurs ; en Python, un n-uplet (tuple) est une liste immuable d'objets qui peuvent être de types différents. 4
Récapitulatif et erreurs fréquentes
| Objectif | Avec boucle et append | En compréhension |
|---|---|---|
| Carrés de 0 à 9 | L = [] puis for n in range(10) : L.append(n**2) | [n**2 for n in range(10)] |
| Entiers pairs de 0 à 9 | for n in range(10) : if n%2==0 : L.append(n) | [n for n in range(10) if n%2==0] |
| Images d'une fonction | for x in A : L.append(f(x)) | [f(x) for x in A] |
Exercices corrigés
Exercice 1 Valeurs d'un polynôme et somme
On définit en Python la liste L = [2*k**2 - 3*k + 1 for k in range(0, 6)].
- Écris la liste
Len donnant ses éléments. - Calcule la somme de ses éléments.
Indice 1
range(0, 6) donne les entiers de 0 à 5.
Indice 2
Remplace par chaque entier dans .
Voir la correction pas à pas
range(0, 6)produit (la borne 6 est exclue).On calcule : donne ; donne ; donne ; donne ; donne ; donne .
La liste est donc
[1, 0, 3, 10, 21, 36].La somme vaut .
La liste est [1, 0, 3, 10, 21, 36] et la somme de ses éléments vaut 71. Le piège était la borne : la liste compte six éléments, pas sept.
Exercice 2 Compter des multiples avec un filtre
Écris une compréhension qui renvoie la liste des multiples de 3 parmi les entiers de 1 à 49 inclus, puis donne le nombre d'éléments de cette liste.
Indice 1
Un entier est multiple de 3 si le reste de la division de par 3 est nul : n % 3 == 0.
Indice 2
Pour inclure 49, la borne de range doit être 50.
Voir la correction pas à pas
La collection de départ est
range(1, 50), qui donne les entiers de 1 à 49.La condition de sélection est
n % 3 == 0.La liste s'écrit
[n for n in range(1, 50) if n % 3 == 0].Les multiples de 3 sont , c'est-à-dire . Il y en a 16.
La liste contient 16 éléments, de 3 jusqu'à 48. On peut vérifier avec len sur la compréhension.
Exercice 3 Dépassement d'un seuil dans une suite
Soit la suite . On construit la liste U = [3*n + 2 for n in range(10)].
- Donne les éléments de
U. - Écris une compréhension qui garde les termes strictement supérieurs à 20, puis donne leur nombre.
Indice 1
Écris d'abord les dix termes, de à .
Indice 2
Le test porte sur la valeur du terme : 3*n + 2 > 20.
Voir la correction pas à pas
range(10)donne .Les termes sont
[2, 5, 8, 11, 14, 17, 20, 23, 26, 29].On filtre avec
[3*n + 2 for n in range(10) if 3*n + 2 > 20].On résout , soit : les valeurs conviennent. La liste obtenue est
[23, 26, 29].Elle contient 3 éléments. Remarque : le terme 20 est écarté, car l'inégalité est stricte.
Trois termes dépassent strictement 20 : 23, 26 et 29. L'inégalité stricte exclut .
Quiz
8 questions · correction immédiate · ton score reste sur ton appareil.
-
Les indices commencent à 0 :
L[0]vaut 4,L[1]vaut 7 etL[2]vaut 9. La réponse 7 vient du réflexe de compter à partir de 1, ce qui décale tout d'une position. -
range(4)donne 0, 1, 2, 3, d'où les carrés 0, 1, 4, 9. La liste[1, 4, 9, 16]suppose querange(4)commence à 1, et[0, 1, 4, 9, 16]qu'il inclut 4 ; or la borne est exclue et le départ est 0. -
Les entiers de 0 à 19 dont le reste dans la division par 5 est nul sont 0, 5, 10 et 15 : il y en a 4. Beaucoup oublient 0, qui est bien un multiple de 5, ou ajoutent 20, qui est exclu du
range. -
C'est vrai : un n-uplet est une liste immuable, contrairement à une liste ordinaire dont on peut changer les éléments avec
L[k] = .... 4 Penser que les deux se comportent de la même façon est une confusion fréquente. -
Les deux premières respectent la forme
[expression for variable in collection], avec ou sans condition. La troisième n'a pas d'expression à calculer, et la quatrième contient une virgule en trop qui rend la syntaxe incorrecte. -
La condition porte sur
n: on garde les entiers pairs 0, 2, 4, 6, 8 puis on les élève au carré. La liste[0, 2, 4, 6, 8]oublie la transformation, et[1, 9, 25, 49, 81]correspond aux entiers impairs. -
len(L)vaut 4, alors que le dernier indice valide est 3. DemanderL[4]provoque une erreur. Pour obtenir 12, on écritL[len(L) - 1]ouL[-1]. -
C'est faux : une liste est ordonnée, et
L[0]ne vaut pas la même chose dans les deux cas. Cette confusion vient des ensembles, où l'ordre ne compte pas.
Les questions qu'on se pose
Quelle est la différence entre une liste et un tableau ?
Au niveau de la classe de première, on ne cherche pas à les distinguer : les documents d'accompagnement ne présentent que les listes et laissent de côté toute différence avec les tableaux. 1 Retiens donc simplement que tu manipules des listes Python avec des crochets.
Pourquoi l'indice commence-t-il à 0 et non à 1 ?
C'est la convention de Python : l'indice indique le décalage par rapport au début de la liste, donc le premier élément est à un décalage de 0. Pour ne pas te tromper, retiens que dans une liste de éléments les indices vont de à .
Dois-je toujours utiliser une compréhension plutôt qu'une boucle avec append ?
Non. Les deux écritures donnent la même liste. La compréhension est plus courte quand chaque élément se calcule indépendamment des autres. Quand un terme dépend du précédent, comme dans une suite définie par récurrence, la boucle avec append reste plus naturelle. Choisis l'écriture que tu sais expliquer et vérifier.
Comment savoir si je dois mettre un if dans ma compréhension ?
Relis l'énoncé : s'il demande de garder seulement certains éléments (les pairs, ceux qui dépassent un seuil), il faut un if. S'il demande de calculer quelque chose pour tous les éléments, il n'y en a pas. Le if se place à la fin, après for ... in ....
Qu'est-ce qui peut tomber à l'épreuve anticipée sur ce chapitre ?
On te demande surtout de lire un court programme et de dire ce qu'il affiche ou ce qu'il calcule, de compléter une ligne manquante (une borne de range, une condition) ou d'écrire une compréhension simple pour obtenir les valeurs d'une fonction ou d'une suite. Entraîne-toi à dérouler un programme à la main sur les premières valeurs.
À quoi sert vraiment une liste en mathématiques ?
À manipuler d'un coup de nombreuses valeurs : les termes d'une suite, les images d'une fonction pour tracer sa courbe, les résultats d'une expérience. Les ressources officielles mentionnent d'ailleurs le tracé d'une courbe comme usage de la compréhension de liste. 1
Sources
- Ressources Éduscol - Algorithmique et listes en Python, Éduscol - Ministère de l'Éducation. Consulté le 6 novembre 2026.
- Ressources Éduscol - Programmation en Python (doc 30007), Éduscol - Ministère de l'Éducation. Consulté le 6 novembre 2026.
- Liste en compréhension, Wikipédia. Consulté le 6 novembre 2026.
- Python (langage), Wikipédia. Consulté le 6 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.