
Introduction aux listes : stocker plusieurs éléments
Découvrez les listes en Python : comment créer des collections ordonnées d'éléments, y accéder par index, et comprendre leur nature mutable. Un premier pas vers les structures de données.
Pourquoi avons-nous besoin de collections ? Le concept de liste
Jusqu'à présent, nous avons principalement travaillé avec des variables capables de stocker une seule valeur à la fois (un nombre, une chaîne de caractères, une valeur booléenne). Cependant, dans de nombreuses situations, nous avons besoin de manipuler un ensemble d'éléments apparentés comme une seule entité. Par exemple, une liste de courses, une série de scores, les noms des élèves d'une classe, etc. Essayer de gérer cela avec des variables individuelles (`course1`, `course2`, `course3`...) deviendrait rapidement ingérable.
C'est là qu'interviennent les structures de données de type collection. En Python, la liste est l'une des structures de données séquentielles les plus polyvalentes et les plus couramment utilisées. Une liste est une collection ordonnée d'éléments, où chaque élément a une position spécifique. Les listes sont également mutables, ce qui signifie que vous pouvez modifier leur contenu après leur création (ajouter, supprimer, ou changer des éléments).
Les éléments d'une liste Python peuvent être de n'importe quel type de données, et une même liste peut même contenir des éléments de types différents (bien qu'il soit plus courant d'avoir des listes homogènes, c'est-à-dire avec des éléments du même type). Les listes sont définies en plaçant les éléments séparés par des virgules entre crochets `[]`.
Créer des listes en Python : syntaxe et exemples
La création d'une liste en Python est simple et intuitive. Vous utilisez des crochets `[]` et séparez les éléments par des virgules.
Voici quelques exemples de création de listes :
# Une liste vide
liste_vide = []
print(f"Liste vide : {liste_vide}, type : {type(liste_vide)}")
# Une liste de nombres entiers (scores)
scores_jeu = [120, 95, 210, 150]
print(f"Scores : {scores_jeu}")
# Une liste de chaînes de caractères (prénoms)
prenoms_invites = ["Alice", "Bob", "Charlie", "David"]
print(f"Invités : {prenoms_invites}")
# Une liste avec des types de données mixtes (moins courant mais possible)
donnees_personne = ["Eve", 30, True, 1.75]
print(f"Données mixtes : {donnees_personne}")
# Une liste peut contenir d'autres listes (liste de listes ou liste imbriquée)
matrice_simple = [[1, 2], [3, 4]]
print(f"Matrice : {matrice_simple}")La fonction `len()` que nous avons vue pour les chaînes de caractères fonctionne également avec les listes pour obtenir le nombre d'éléments qu'elles contiennent :
print(f"Nombre de scores : {len(scores_jeu)}") # Affichera : Nombre de scores : 4
print(f"Nombre d'invités : {len(prenoms_invites)}") # Affichera : Nombre d'invités : 4
print(f"Nombre d'éléments dans la liste vide : {len(liste_vide)}") # Affichera : 0Accéder aux éléments d'une liste : l'indexation
Puisque les listes sont des séquences ordonnées, chaque élément a une position bien définie, appelée son index. En Python, l'indexation commence à 0 pour le premier élément, 1 pour le deuxième, et ainsi de suite. Pour accéder à un élément spécifique d'une liste, vous utilisez le nom de la liste suivi de l'index de l'élément entre crochets `[]`.
fruits = ["pomme", "banane", "cerise", "datte", "elderberry"]
# Accéder au premier élément (index 0)
premier_fruit = fruits[0]
print(f"Premier fruit : {premier_fruit}") # Affichera : pomme
# Accéder au troisième élément (index 2)
troisieme_fruit = fruits[2]
print(f"Troisième fruit : {troisieme_fruit}") # Affichera : cerise
# Accéder au dernier élément
# Si vous connaissez la longueur : len(fruits) - 1
dernier_fruit_methode1 = fruits[len(fruits) - 1]
print(f"Dernier fruit (méthode 1) : {dernier_fruit_methode1}") # Affichera : elderberryPython offre également une indexation négative très pratique. L'index `-1` fait référence au dernier élément de la liste, `-2` à l'avant-dernier, et ainsi de suite.
# Accéder au dernier élément avec indexation négative
dernier_fruit_methode2 = fruits[-1]
print(f"Dernier fruit (méthode 2) : {dernier_fruit_methode2}") # Affichera : elderberry
# Accéder à l'avant-dernier élément
avant_dernier_fruit = fruits[-2]
print(f"Avant-dernier fruit : {avant_dernier_fruit}") # Affichera : datte Essayer d'accéder à un index qui n'existe pas dans la liste (par exemple, `fruits[10]` si la liste n'a que 5 éléments) provoquera une erreur `IndexError`.Mutabilité des listes : modifier les éléments
Une caractéristique clé des listes en Python est leur mutabilité. Cela signifie que vous pouvez changer le contenu d'une liste après sa création. Vous pouvez modifier un élément existant, ajouter de nouveaux éléments, ou en supprimer.
Pour modifier un élément existant, vous accédez à cet élément par son index et lui assignez une nouvelle valeur :
couleurs = ["rouge", "vert", "bleu"]
print(f"Liste originale : {couleurs}")
# Modifier le deuxième élément (index 1)
couleurs[1] = "jaune"
print(f"Liste modifiée : {couleurs}") # Affichera : ['rouge', 'jaune', 'bleu']Il existe de nombreuses méthodes pour ajouter et supprimer des éléments (comme `append()`, `insert()`, `remove()`, `pop()`), ainsi que pour trier, inverser, et effectuer d'autres opérations sur les listes. Nous les explorerons plus en détail dans des chapitres ultérieurs dédiés aux structures de données. Pour l'instant, retenez que les listes sont dynamiques et peuvent évoluer au cours de l'exécution de votre programme.
Cette introduction vous donne les bases pour commencer à utiliser les listes. Elles sont omniprésentes en Python et sont souvent utilisées en conjonction avec des boucles `for` pour itérer sur leurs éléments, une technique que nous verrons très prochainement de manière plus approfondie. Par exemple :
nombres = [10, 20, 30, 40]
for nombre in nombres:
print(f"Le double de {nombre} est {nombre * 2}")