Comment utiliser cette page

Cette page suit toujours le même plan : le vocabulaire, un exemple concret, les opérations de base, les méthodes courantes, une démonstration interactive, le code Python, puis la complexité.

Utilisation de la démonstration
La démonstration avance uniquement quand vous cliquez sur « Suivant » ou « Précédent » : rien ne bouge tout seul. Un bouton « Lecture automatique » est disponible si vous préférez laisser les étapes défiler seules, à une vitesse que vous choisissez.

1. Vocabulaire à connaître avant de commencer

Chaque mot ci-dessous est utilisé exactement dans ce sens dans toute la page.

MotDéfinition précise
ListeUne suite ordonnée de valeurs, chacune repérée par un indice qui commence à 0. En Python, une liste s'écrit entre crochets : [valeur1, valeur2, ...].
IndiceLe numéro qui repère la position d'un élément dans la liste. Le premier indice est 0, pas 1.
ÉlémentUne valeur individuelle contenue dans la liste.
Indice négatifUn indice compté à partir de la fin de la liste : l[-1] désigne le dernier élément, l[-2] l'avant-dernier.
Liste mutableUne liste dont on peut changer le contenu après sa création (ajouter, modifier, supprimer des éléments), contrairement par exemple à une chaîne de caractères.
Tranche (slice)Une portion de la liste, obtenue avec un indice de début et un indice de fin séparés par deux points : l[debut:fin].
MéthodeUne fonction associée à un objet, qu'on appelle avec un point : par exemple, liste.append(x) appelle la méthode append sur l'objet liste.

2. L'exemple utilisé dans cette page

On utilise une liste de courses à faire :

Liste d'exemple
courses = ["pain", "lait", "oeufs"]

Cette liste contient 3 éléments : "pain" à l'indice 0, "lait" à l'indice 1, et "oeufs" à l'indice 2.

3. Les opérations de base sur une liste

OpérationCode PythonRésultat sur l'exemple
Créer une liste videl = [][]
Créer une liste avec des valeurscourses = ["pain", "lait", "oeufs"]3 éléments créés
Accéder à un élément par son indicecourses[0]"pain"
Accéder avec un indice négatifcourses[-1]"oeufs" (le dernier élément)
Modifier un élément existantcourses[1] = "jus"courses[1] vaut maintenant "jus"
Connaître la longueur de la listelen(courses)3
Tester si une valeur est présente"lait" in coursesTrue
Extraire une tranchecourses[0:2]["pain", "jus"]
Concaténer deux listescourses + ["pommes"]["pain", "jus", "oeufs", "pommes"]
La borne de fin d'une tranche n'est jamais incluse
courses[0:2] donne les éléments d'indices 0 et 1, mais pas l'élément d'indice 2. De façon générale, l[debut:fin] contient les indices de debut jusqu'à fin - 1.

4. Les méthodes courantes pour modifier une liste

MéthodeEffetExemple
append(x)ajoute x à la fin de la listecourses.append("pommes")
insert(i, x)insère x à l'indice i (décale les éléments suivants vers la droite)courses.insert(1, "beurre")
remove(x)supprime la première occurrence de la valeur xcourses.remove("lait")
pop(i)retire et renvoie l'élément d'indice i (le dernier si i est omis)courses.pop(0)
sort()trie la liste par ordre croissant, directement sur placecourses.sort()
reverse()inverse l'ordre des éléments, directement sur placecourses.reverse()
index(x)renvoie l'indice de la première occurrence de xcourses.index("lait")
count(x)renvoie le nombre d'occurrences de xcourses.count("lait")

5. Démonstration interactive

5.1 — Principe, en une phrase

Principe
Chaque méthode transforme la liste d'une façon précise : append et insert ajoutent un élément (en décalant si besoin), remove et pop en retirent un (en décalant les suivants vers la gauche), et l'affectation par indice remplace un élément sans changer la longueur de la liste.

5.2 — Les étapes, dans l'ordre exact

  1. On part d'une liste de courses vide.
  2. On ajoute "pain", puis "lait", puis "oeufs" avec append : ils s'ajoutent à la fin, dans cet ordre.
  3. On insère "beurre" à l'indice 1 avec insert(1, "beurre") : "lait" et "oeufs" sont décalés d'une case vers la droite.
  4. On remplace l'élément d'indice 3 ("oeufs") par "yaourt", avec une affectation directe : la longueur de la liste ne change pas.
  5. On supprime "beurre" avec remove("beurre") : les éléments suivants sont décalés d'une case vers la gauche.
  6. On retire l'élément d'indice 1 avec pop(1), qui renvoie sa valeur.
  7. On ajoute "pommes" à la fin, puis on trie toute la liste par ordre alphabétique avec sort().

5.3 — Trace pas à pas

élément qui vient d'être ajouté élément qui vient d'être modifié élément sur le point d'être retiré
État de la liste (l'indice de chaque élément est indiqué en dessous)
Étape 1 / 1
La ligne de code correspondant à l'étape en cours est surlignée ci-dessous.

5.4 — Code Python

courses = []courses.append("pain")courses.append("lait")courses.append("oeufs")courses.insert(1, "beurre")   # décale "lait" et "oeufs" vers la droitecourses[3] = "yaourt"          # remplace l'ancien "oeufs"courses.remove("beurre")       # retire la première occurrence de "beurre"valeur = courses.pop(1)        # retire et renvoie l'indice 1courses.append("pommes")courses.sort()                 # trie par ordre alphabétique

6. Parcourir une liste

InstructionCe qu'elle fait
for element in courses:parcourt chaque élément, un par un, sans avoir besoin des indices
for i in range(len(courses)):parcourt chaque indice, un par un ; utile quand on a besoin de l'indice, ou pour modifier la liste pendant le parcours

Python permet aussi de construire une nouvelle liste en une seule ligne, avec une compréhension de liste :

carres = [x**2 for x in range(5)]# Résultat : [0, 1, 4, 9, 16]

7. Listes et mutabilité

Une liste est mutable : deux noms de variable peuvent désigner la même liste en mémoire, et modifier l'un modifie aussi l'autre.

a = [1, 2, 3]b = a           # b désigne la MÊME liste que a, ce n'est pas une copieb.append(4)     # modifie aussi a : a vaut maintenant [1, 2, 3, 4]c = a.copy()    # c est une VRAIE copie, indépendante de ac.append(5)     # ne modifie pas a

8. Complexité des opérations sur une liste

9. Points clés à retenir

Prêt(e) pour la suite ? → Retour à l'accueil