Skip to main content
Niveau : Intermédiaire

Chapitre 11 : Les Listes

Séquence ordonnée, Muable, append, pop, Slicing, index

1. Quoi : Les Listes

Une liste (list) est une collection ordonnée et muable (modifiable) d'éléments. C'est l'un des types de données les plus polyvalents et les plus utilisés en Python.

  • Ordonnée : Les éléments conservent l'ordre dans lequel ils ont été ajoutés.
  • Muable : Vous pouvez ajouter, supprimer ou modifier des éléments après la création de la liste.
  • Les éléments peuvent être de types différents (bien qu'il soit courant d'avoir des listes avec des éléments de même type).

2. Pourquoi : Gérer des collections de données

Les listes sont essentielles pour regrouper et gérer des ensembles de données.

  • Stocker une liste d'utilisateurs, de produits, de scores.
  • Représenter une série de valeurs à traiter (par exemple, les lignes d'un fichier).
  • Servir de base à de nombreuses autres structures de données.

3. Comment : Création et Manipulation

A. Création

On crée une liste avec des crochets [], en séparant les éléments par des virgules.

# Une liste de nombres
numbers = [1, 2, 3, 4, 5]

# Une liste de chaînes de caractères
fruits = ["apple", "banana", "cherry"]

# Une liste avec des types mixtes
mixed_list = [1, "hello", 3.14, True]

# Une liste vide
empty_list = []

B. Accès aux éléments

L'accès aux éléments se fait par index, comme pour les chaînes de caractères. L'indexation commence à 0.

fruits = ["apple", "banana", "cherry"]

first_fruit = fruits[0] # "apple"
second_fruit = fruits[1] # "banana"
last_fruit = fruits[-1] # "cherry"

C. Modification des éléments

Comme les listes sont muables, vous pouvez modifier un élément en le réassignant via son index.

fruits = ["apple", "banana", "cherry"]
fruits[1] = "blueberry"
print(fruits) # Affiche : ['apple', 'blueberry', 'cherry']

D. Ajout d'éléments

  • .append(element) : Ajoute un élément à la fin de la liste.
  • .insert(index, element) : Insère un élément à une position spécifique.
numbers = [1, 2, 3]

# Ajoute à la fin
numbers.append(4)
print(numbers) # [1, 2, 3, 4]

# Insère à l'index 1
numbers.insert(1, 99)
print(numbers) # [1, 99, 2, 3, 4]

E. Suppression d'éléments

  • .remove(element) : Supprime la première occurrence de la valeur spécifiée.
  • del list[index] : Supprime l'élément à l'index spécifié.
  • .pop(index) : Supprime l'élément à l'index spécifié et le retourne. Si aucun index n'est fourni, supprime et retourne le dernier élément.
letters = ['a', 'b', 'c', 'b', 'd']

# Supprimer par valeur
letters.remove('b') # Supprime le premier 'b'
print(letters) # ['a', 'c', 'b', 'd']

# Supprimer par index
del letters[2] # Supprime l'élément à l'index 2 ('b')
print(letters) # ['a', 'c', 'd']

# Supprimer et récupérer le dernier élément
last_item = letters.pop()
print(f"Popped item: {last_item}") # Popped item: d
print(f"List after pop: {letters}") # List after pop: ['a', 'c']

F. Slicing (Découpage)

Le slicing fonctionne comme pour les chaînes et permet de créer une nouvelle liste (une copie) contenant une sous-partie de la liste originale.

numbers = [0, 1, 2, 3, 4, 5, 6]

# Éléments de l'index 2 à 4 (exclu)
sub_list = numbers[2:4] # [2, 3]

# Du début jusqu'à l'index 3 (exclu)
first_three = numbers[:3] # [0, 1, 2]

# De l'index 4 jusqu'à la fin
from_four = numbers[4:] # [4, 5, 6]

# Créer une copie complète de la liste
list_copy = numbers[:]

G. Fonctions et Méthodes Utiles

  • len(list) : Retourne le nombre d'éléments dans la liste.
  • list.sort() : Trie la liste en place (modifie la liste originale).
  • sorted(list) : Retourne une nouvelle liste triée (laisse l'originale intacte).
  • list.reverse() : Inverse l'ordre des éléments en place.
numbers = [3, 1, 4, 1, 5, 9]

# Trier en place
numbers.sort()
print(numbers) # [1, 1, 3, 4, 5, 9]

# Inverser en place
numbers.reverse()
print(numbers) # [9, 5, 4, 3, 1, 1]

# Obtenir une version triée sans modifier l'original
unsorted_list = [5, 2, 8]
sorted_copy = sorted(unsorted_list)
print(f"Original: {unsorted_list}") # Original: [5, 2, 8]
print(f"Sorted copy: {sorted_copy}") # Sorted copy: [2, 5, 8]

H. L'opérateur in

Pour vérifier si un élément est présent dans une liste.

fruits = ["apple", "banana", "cherry"]
print("banana" in fruits) # True
print("orange" in fruits) # False

Exercices :

Exercice 11 - Gestion d'une Liste de Tâches (To-Do List)

Objectif

Cet exercice a pour but de vous faire manipuler une liste en utilisant les opérations de base : ajout, suppression, affichage et modification, dans le contexte d'une simple application de liste de tâches.

Énoncé

  1. Créez un nouveau fichier Python nommé todo_list.py.

  2. Initialisez une liste vide nommée tasks pour stocker vos tâches.

  3. Ajoutez les tâches initiales suivantes à votre liste, une par une, en utilisant la méthode .append():

    • "Learn Python basics"
    • "Practice list manipulations"
    • "Build a simple application"
  4. Affichez la liste :

    • Affichez un titre "My To-Do List:"
    • Utilisez une boucle for pour afficher chaque tâche sur une nouvelle ligne.
  5. Marquez une tâche comme terminée :

    • Imaginez que vous avez terminé la première tâche. Modifiez l'élément à l'index 0 pour qu'il devienne "Learn Python basics - DONE".
  6. Ajoutez une nouvelle tâche urgente :

    • Ajoutez la tâche "Review list methods" au début de la liste en utilisant la méthode .insert().
  7. Supprimez une tâche :

    • Supposons que la tâche "Build a simple application" n'est plus pertinente. Supprimez-la de la liste en utilisant la méthode .remove().
  8. Affichez la liste finale :

    • Affichez un titre "Final To-Do List:"
    • Affichez à nouveau chaque tâche de la liste mise à jour.

Résultat Attendu

La sortie de votre script doit être :

My To-Do List:
Learn Python basics
Practice list manipulations
Build a simple application

Final To-Do List:
Review list methods
Learn Python basics - DONE
Practice list manipulations
Cliquez ici pour voir un exemple de code de solution
# todo_list.py

# 1. Initialisation
tasks = []

# 2. Ajout des tâches initiales
tasks.append("Learn Python basics")
tasks.append("Practice list manipulations")
tasks.append("Build a simple application")

# 3. Affichage de la liste initiale
print("My To-Do List:")
for task in tasks:
print(task)

# Ajout d'un saut de ligne pour la clarté
print("\n")

# 4. Marquer une tâche comme terminée
tasks[0] = "Learn Python basics - DONE"

# 5. Ajouter une tâche urgente au début
tasks.insert(0, "Review list methods")

# 6. Supprimer une tâche par sa valeur
tasks.remove("Build a simple application")

# 7. Affichage de la liste finale
print("Final To-Do List:")
for task in tasks:
print(task)