1re Mathématiques Spécialité maths BO n°14 du 2 avril 2026

Python : les listes

Résumé de cours

Python : les listes Mathématiques · 1re · Les Génies des Sciences · geniesdessciences.com

En seconde, une variable Python rangeait une valeur. Mais pour stocker les 100 premiers termes d’une suite ou un tableau de valeurs d’une fonction, il faudrait 100 variables… La solution de première : la liste, une seule variable qui contient toute une collection de valeurs, numérotées et modifiables. C’est LA nouveauté Python de l’année — et on se limite à elle, aucun autre type de collection au programme.

Créer une liste, lire ses éléments

Une liste s’écrit en extension : les valeurs entre crochets, séparées par des virgules. Chaque élément a un numéro, son indice — et la numérotation commence à 0.

notes = [12, 15, 9, 18]
print(notes[0])    # affiche 12 (le PREMIER élément a l'indice 0)
print(notes[3])    # affiche 18 (le dernier : indice 3, pas 4)
print(len(notes))  # affiche 4 (le nombre d'éléments)
  • Une liste de nn éléments a des indices de 00 à n1n - 1 : le dernier élément est notes[len(notes) - 1].
  • La liste vide s’écrit [] — c’est le point de départ de beaucoup de programmes.

Modifier une liste : ajouter, remplacer, supprimer

notes.append(14)   # ajoute 14 À LA FIN : [12, 15, 9, 18, 14]
notes[2] = 10      # remplace l'élément d'indice 2 : [12, 15, 10, 18, 14]
del notes[0]       # supprime l'élément d'indice 0 : [15, 10, 18, 14]

append (« ajouter » en anglais) est l’outil n° 1 : combiné à une boucle, il fabrique une liste par ajouts successifs :

L = []
for n in range(1, 6):
    L.append(3 * n)
print(L)   # affiche [3, 6, 9, 12, 15]

Créer une liste en compréhension

La compréhension compacte la boucle ci-dessus en une seule ligne, très proche de la notation mathématique des ensembles :

La compréhension, dictionnaire maths ↔ Python

{n2, n{0,1,,9}}[n**2 for n in range(10)]\left\{\,n^2,\ n \in \{0,\,1,\,\ldots,\,9\}\,\right\} \quad \longleftrightarrow \quad \texttt{[n**2 for n in range(10)]}

« La liste des n² pour n allant de 0 à 9 ». On peut ajouter une condition, comme en logique : [n for n in range(20) if n % 2 == 0] donne les pairs [0, 2, 4, …, 18] — « les n TELS QUE n est divisible par 2 ».

carres = [n**2 for n in range(10)]
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
pairs = [n for n in range(20) if n % 2 == 0]
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

Parcourir une liste : par éléments ou par indices

Deux façons de visiter tous les éléments. Par éléments — la plus lisible — quand seules les valeurs comptent :

notes = [15, 10, 18, 14]
total = 0
for x in notes:            # x prend successivement les valeurs 15, 10, 18, 14
    total = total + x
print(total / len(notes))  # affiche 14.25 (la moyenne)

Par indices, quand la position sert aussi (comparer des voisins, modifier la liste…) :

for i in range(len(notes)):   # i prend les valeurs 0, 1, 2, 3
    print(i, notes[i])

Éléments ou indices ?

Tu n’as besoin que des valeurs (somme, moyenne, maximum, comptage) → for x in L. Tu as besoin de la position (numéro du terme, élément suivant, remplacement) → for i in range(len(L)) puis L[i]. Les deux parcourent toute la liste, dans l’ordre.

Les listes au service des maths de première

Les premiers termes d’une suite définie par récurrence — ici u0=1u_0 = 1 et un+1=2un+1u_{n+1} = 2u_n + 1 :

termes = [1]
for n in range(4):
    termes.append(2 * termes[n] + 1)
print(termes)   # affiche [1, 3, 7, 15, 31]

À chaque tour, le nouveau terme se calcule à partir du précédent, termes[n] — la liste garde toute l’histoire de la suite.

Le tableau de valeurs d’une fonction, en une ligne de compréhension :

abscisses = [x for x in range(-3, 4)]   # [-3, -2, -1, 0, 1, 2, 3]
images = [x**2 for x in abscisses]      # [9, 4, 1, 0, 1, 4, 9]

Les pièges classiques

Quatre erreurs qui coutent des points

Les indices commencent à 0 : L[1] est le deuxième élément. Une liste de longueur nn s’arrête à l’indice n1n - 1 : L[len(L)] provoque une erreur (« index out of range »). Dans une compréhension, range(10) s’arrête à 9 — le piège de seconde n’a pas disparu. Et ne confonds pas L.append(x) (ajoute xx à la fin) avec L[i] = x (remplace l’élément d’indice ii, sans changer la longueur).

Exercices corrigés

Teste-toi avec un quiz