Les listes en Python

Définition, méthode pas à pas, exemple corrigé et exercice type contrôle de Seconde.

Maths Seconde Lecture : 5 min Programme officiel 2019

En Python, une liste est une collection ordonnée et modifiable d'éléments. Chaque élément d'une liste possède un indice (ou index) qui permet d'y accéder. Le premier élément a l'indice $0$. Les listes peuvent contenir des éléments de différents types (nombres, chaînes de caractères, autres listes, etc.).

Bon réflexe : Pensez toujours que le premier élément d'une liste est à l'indice $0$, et le dernier à l'indice len(ma_liste) - 1.
1

Créer une liste

Une liste est définie en plaçant les éléments entre crochets [], séparés par des virgules. Une liste vide est [].

2

Accéder à un élément

Pour accéder à un élément, on utilise son indice entre crochets après le nom de la liste. Par exemple, ma_liste[0] donne le premier élément. Les indices négatifs permettent d'accéder aux éléments depuis la fin de la liste : ma_liste[-1] est le dernier élément.

3

Modifier un élément

Les listes sont mutables. Pour modifier un élément, on assigne une nouvelle valeur à l'emplacement de l'indice : ma_liste[indice] = nouvelle_valeur.

4

Ajouter ou supprimer des éléments

  • ma_liste.append(element) ajoute un élément à la fin de la liste.
  • ma_liste.insert(indice, element) insère un élément à un indice spécifique.
  • ma_liste.pop(indice) supprime et renvoie l'élément à l'indice donné (si aucun indice n'est spécifié, supprime le dernier).
  • ma_liste.remove(valeur) supprime la première occurrence de la valeur spécifiée.

5

Parcourir une liste

On peut parcourir une liste avec une boucle for. Deux méthodes courantes :

  • Parcourir les éléments directement : for element in ma_liste:
  • Parcourir les indices : for i in range(len(ma_liste)): où len(ma_liste) donne la taille de la liste.

On souhaite gérer une liste de courses pour la semaine.
1
Créer la liste initiale de courses.
courses = ['pain', 'lait', 'œufs', 'fruits']
2
Afficher le premier article de la liste.
print(courses[0]) # Affiche 'pain'
3
Modifier le troisième article (les œufs sont périmés, on prend du fromage).
courses[2] = 'fromage'
print(courses) # Affiche ['pain', 'lait', 'fromage', 'fruits']
4
Ajouter 'légumes' à la fin de la liste.
courses.append('légumes')
print(courses) # Affiche ['pain', 'lait', 'fromage', 'fruits', 'légumes']
5
Insérer 'viande' en deuxième position (indice 1).
courses.insert(1, 'viande')
print(courses) # Affiche ['pain', 'viande', 'lait', 'fromage', 'fruits', 'légumes']
6
Supprimer 'lait' de la liste.
courses.remove('lait')
print(courses) # Affiche ['pain', 'viande', 'fromage', 'fruits', 'légumes']
La liste finale des courses est ['pain', 'viande', 'fromage', 'fruits', 'légumes'].
  1. Erreur d'indice (IndexError) : Tenter d'accéder à un indice qui n'existe pas (par exemple, ma_liste[10] pour une liste de 5 éléments). Les indices valides vont de $0$ à len(ma_liste) - 1.
  2. Confusion entre append() et insert() : append() ajoute toujours à la fin, insert() permet de choisir la position. Utiliser insert(len(ma_liste), element) est équivalent à append(element).
  3. Effets de bord avec la copie de listes : liste2 = liste1 ne crée pas une nouvelle liste, mais une référence à la même liste. Modifier liste2 modifiera aussi liste1. Pour copier une liste, utilisez liste2 = list(liste1) ou liste2 = liste1[:].
Un professeur souhaite gérer les notes d'un élève dans une liste Python.

  1. Créez une liste nommée notes contenant les notes suivantes : $12$, $15$, $9$, $18$.
  2. L'élève a eu une nouvelle note de $14$. Ajoutez cette note à la fin de la liste.
  3. Le professeur se rend compte que la note $9$ était une erreur et qu'elle devrait être $11$. Modifiez la note correspondante dans la liste.
  4. Calculez et affichez la moyenne des notes de l'élève.
  1. Création de la liste :
    notes = [12, 15, 9, 18]
    print(notes) # Affiche [12, 15, 9, 18]
  2. Ajout de la nouvelle note :
    notes.append(14)
    print(notes) # Affiche [12, 15, 9, 18, 14]
  3. Modification de la note $9$ en $11$. La note $9$ est à l'indice $2$ (car $12$ est à $0$, $15$ à $1$).
    notes[2] = 11
    print(notes) # Affiche [12, 15, 11, 18, 14]
  4. Calcul et affichage de la moyenne :
    somme_notes = 0
    for note in notes:
        somme_notes = somme_notes + note
    
    moyenne = somme_notes / len(notes)
    print(f"La moyenne des notes est : {moyenne}") # Affiche La moyenne des notes est : 14.0

Questions fréquentes

Quelle est la différence entre une liste et une chaîne de caractères ?
Une chaîne de caractères est une séquence de caractères (texte) et est immuable : on ne peut pas modifier un caractère à un indice donné. Une liste est une séquence d'éléments de n'importe quel type et est mutable : on peut ajouter, supprimer ou modifier des éléments.
Comment savoir si un élément est présent dans une liste ?
On utilise l'opérateur in. Par exemple, 'pain' in courses renverra True si 'pain' est dans la liste courses, et False sinon.
Comment trier une liste ?
La méthode ma_liste.sort() trie la liste en place (modifie la liste originale). La fonction sorted(ma_liste) renvoie une nouvelle liste triée sans modifier l'originale.
Peut-on avoir des listes de listes ?
Oui, absolument ! Une liste peut contenir d'autres listes comme éléments. C'est très utile pour représenter des tableaux ou des matrices, par exemple : matrice = [[1, 2], [3, 4]].

Le passage en Seconde est difficile ?

Adil accompagne les élèves de Seconde, à domicile dans le Val d'Oise ou en ligne. Un seul prof, du premier cours jusqu'au Bac.

06 20 13 00 82 Cours de maths en Seconde →