Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Introduction aux Listes

Dans cet article, vous allez apprendre ce qu’est une liste et comment utiliser ses éléments. Les listes permettent de stocker plusieurs éléments dans une seule variable, ce qui est très utile lorsque vous devez travailler avec des groupes de données. En Python, les listes sont dynamiques, ce qui signifie que vous pouvez facilement modifier leur contenu en ajoutant, supprimant ou remplaçant des éléments.

Définition

Une liste est une collection d’éléments, souvent appelés éléments ou valeurs, qui sont organisés dans un ordre particulier. Les éléments d’une liste peuvent être de n’importe quel type : chaînes de caractères, nombres, etc. Vous pouvez même mélanger plusieurs types d’éléments dans une seule liste.

En Python, les listes sont définies en entourant les éléments par des crochets ([]) et en séparant les éléments par des virgules.

fruits = ['mangues', 'papayes', 'bananes', 'oranges']
print(fruits)
['mangues', 'papayes', 'bananes', 'oranges']

Accéder aux Éléments d’une Liste

Indexation Positive

En Python, les listes sont des collections ordonnées d’éléments, où chaque élément a une position spécifique ou un index. Contrairement au comptage humain où nous commençons par 1, les listes Python commencent leur indexation à partir de 0. C’est une convention courante dans de nombreux langages de programmation et est enracinée dans la mise en œuvre sous-jacente des opérations sur les listes.

Chaque élément d’une liste est numéroté en fonction de sa position dans la liste. Cette position est appelée indice. En Python, les indices commencent toujours à 0, c’est-à-dire que le premier élément a l’indice 0, le deuxième élément a l’indice 1, et ainsi de suite.

Pour accéder à un élément d’une liste, vous devez indiquer l’indice entre crochets après le nom de la liste.

Exemple :

fruits = ['pomme', 'banane', 'orange', 'raisin']
print(fruits[0])  # Affiche le premier élément
print(fruits[2].title())  # Affiche le troisième élément
pomme
Orange

Indexation Négative

Python prend également en charge l’indexation négative, ce qui vous permet d’accéder aux éléments à partir de la fin de la liste. L’index -1 fait référence au dernier élément, -2 au deuxième dernier, et ainsi de suite:

print(fruits[-1].capitalize())  # Sortie : Raisin
print(fruits[-2].title())  # Sortie : Orange
Raisin
Orange

Pourquoi l’Indexation Négative est Utile

L’indexation négative est particulièrement pratique lorsque vous souhaitez accéder aux derniers éléments d’une liste sans connaître sa longueur exacte. Par exemple, si vous avez besoin de traiter le dernier élément d’une liste indépendamment de sa taille, vous pouvez utiliser l’index -1.

Utiliser des Valeurs Individuelles d’une Liste

Vous pouvez utiliser les valeurs d’une liste dans des phrases ou des calculs, comme n’importe quelle autre variable.

Exemple d’utilisation avec une f-string pour inclure un élément dans une phrase:

message = f"Mon fruit préféré est la {fruits[0]}."
print(message)
Mon fruit préféré est la pomme.

Modifier, Ajouter et Supprimer des Éléments

Modifier un Élément

Pour modifier une valeur dans une liste, vous spécifiez l’indice de l’élément à modifier et vous lui attribuez une nouvelle valeur.

Exemple:

print(fruits)

fruits[1] = 'fraise'
print(fruits)
['pomme', 'banane', 'orange', 'raisin']
['pomme', 'fraise', 'orange', 'raisin']

Ajouter des Éléments à une Liste

Ajouter à la Fin d’une Liste La méthode append() permet d’ajouter un nouvel élément à la fin de la liste.

Exemple:

fruits.append('kiwi')
fruits.append('mangue')
fruits.append('cerise')
fruits.append('poire')
fruits.append('pêche')
fruits.append('abricot')
print(fruits)
['pomme', 'fraise', 'orange', 'raisin', 'kiwi', 'mangue', 'cerise', 'poire', 'pêche', 'abricot']

Insérer à une Position Spécifique

La méthode insert() permet d’ajouter un élément à n’importe quelle position dans la liste. Vous devez spécifier l’indice où l’élément doit être inséré.

Exemple:

print(fruits)
fruits.insert(2, 'ananas')
fruits.insert(-1, 'figue')
fruits.insert(-1, 'citron')
fruits.insert(-1, 'melon')
fruits.insert(-1, 'pastèque')
fruits.insert(-1, 'grenade')
print(fruits)
['pomme', 'fraise', 'orange', 'raisin', 'kiwi', 'mangue', 'cerise', 'poire', 'pêche', 'abricot']
['pomme', 'fraise', 'ananas', 'orange', 'raisin', 'kiwi', 'mangue', 'cerise', 'poire', 'pêche', 'figue', 'citron', 'melon', 'pastèque', 'grenade', 'abricot']

Supprimer des Éléments d’une Liste

Utiliser del

Si vous connaissez la position de l’élément que vous voulez supprimer, vous pouvez utiliser l’instruction del.

Exemple:

del fruits[2]
print(fruits)
['pomme', 'fraise', 'orange', 'raisin', 'kiwi', 'mangue', 'cerise', 'poire', 'pêche', 'figue', 'citron', 'melon', 'pastèque', 'grenade', 'abricot']

Utiliser pop()

La méthode pop() retire le dernier élément de la liste et vous permet de le réutiliser. Si vous souhaitez retirer un élément à une position spécifique, vous pouvez indiquer l’indice de cet élément.

Exemple:

dernier_fruit = fruits.pop()
print(fruits)
print(f"Le dernier fruit était un {dernier_fruit}.")
['pomme', 'fraise', 'orange', 'raisin', 'kiwi', 'mangue', 'cerise', 'poire', 'pêche', 'figue', 'citron', 'melon', 'pastèque', 'grenade']
Le dernier fruit était un abricot.
premier_fruit = fruits.pop(0)
print(fruits)
print(f"Le dernier fruit était un {premier_fruit}.")
['fraise', 'orange', 'raisin', 'kiwi', 'mangue', 'cerise', 'poire', 'pêche', 'figue', 'citron', 'melon', 'pastèque', 'grenade']
Le dernier fruit était un pomme.

Utiliser remove()

La méthode remove() permet de supprimer un élément par sa valeur et non par son indice.

Exemple:

fruits.append('kiwi')
fruits.append('mangue')
fruits.append('cerise')
fruits.append('poire')
fruits
['fraise', 'orange', 'raisin', 'kiwi', 'mangue', 'cerise', 'poire', 'pêche', 'figue', 'citron', 'melon', 'pastèque', 'grenade', 'kiwi', 'mangue', 'cerise', 'poire']
fruits.remove('poire')
print(fruits)
['fraise', 'orange', 'raisin', 'kiwi', 'mangue', 'cerise', 'pêche', 'figue', 'citron', 'melon', 'pastèque', 'grenade', 'kiwi', 'mangue', 'cerise', 'poire']

Exercices

Exercice 2-1 : Liste d’invités

Si vous pouviez inviter n’importe qui, vivant ou décédé, à dîner, qui inviteriez-vous? Faites une liste comprenant au moins trois personnes que vous aimeriez inviter à dîner. Utilisez ensuite votre liste pour imprimer un message à chaque personne, l’invitant à dîner.

Exercice 2-2 : Modification de la Liste d’Invités

Vous venez d’apprendre qu’un de vos invités ne peut pas venir au dîner, vous devez donc envoyer un nouvel ensemble d’invitations. Vous devrez penser à quelqu’un d’autre à inviter.

Commencez avec votre programme de l’exercice 3-4. Ajoutez un appel print() à la fin de votre programme indiquant le nom de l’invité qui ne peut pas venir. Modifiez votre liste en remplaçant le nom de l’invité qui ne peut pas venir par le nom de la nouvelle personne que vous invitez. Imprimez un deuxième ensemble de messages d’invitation, un pour chaque personne qui est toujours dans votre liste.1

Exercice 2-3. Plus d’Invités:

Vous venez de trouver une plus grande table à manger, vous avez donc plus de place disponible. Pensez à trois autres invités à inviter à dîner.

Commencez avec votre programme de l’exercice 3-4 ou 3-5. Ajoutez un appel print() à la fin de votre programme informant les gens que vous avez trouvé une plus grande table à manger.

Utilisez insert() pour ajouter un nouvel invité au début de votre liste. Utilisez insert() pour ajouter un nouvel invité au milieu de votre liste. Utilisez append() pour ajouter un nouvel invité à la fin de votre liste. Imprimez un nouvel ensemble de messages d’invitation, un pour chaque personne dans votre liste.

Exercice 2-4. Liste d’Invités Rétrécie:

Vous venez d’apprendre que votre nouvelle table à manger n’arrivera pas à temps pour le dîner, et vous n’avez de la place que pour deux invités.

Commencez avec votre programme de l’exercice 3-6. Ajoutez une nouvelle ligne qui imprime un message disant que vous ne pouvez inviter que deux personnes pour le dîner.

Utilisez pop() pour supprimer des invités de votre liste un par un jusqu’à ce qu’il ne reste que deux noms dans votre liste. Chaque fois que vous retirez un nom de votre liste, imprimez un message à cette personne en lui disant que vous êtes désolé de ne pas pouvoir l’inviter à dîner.

Imprimez un message à chacune des deux personnes toujours sur votre liste, en leur faisant savoir qu’elles sont toujours invitées. Utilisez del pour supprimer les deux derniers noms de votre liste, afin d’avoir une liste vide. Imprimez votre liste pour vous assurer que vous avez effectivement une liste vide à la fin de votre programme.

Correction

Exercice 2-1 : Liste d’invités

invites = ["Albert Einstein", "Marie Curie", "Leonardo da Vinci"]

print(f"Cher {invites[0]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")
print(f"Chère {invites[1]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")
print(f"Cher {invites[2]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")

Exercice 2-2 : Modification de la Liste d’Invités

invites = ["Albert Einstein", "Marie Curie", "Leonardo da Vinci"]

print(f"Cher {invites[0]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")
print(f"Chère {invites[1]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")
print(f"Cher {invites[2]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")

print(f"\nMalheureusement, {invites[1]} ne peut pas venir au dîner.")

invites[1] = "Isaac Newton"

print("\nNouvelles invitations :")
print(f"Cher {invites[0]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")
print(f"Cher {invites[1]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")
print(f"Cher {invites[2]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")

Exercice 2-3 : Plus d’Invités

invites = ["Albert Einstein", "Isaac Newton", "Leonardo da Vinci"]

print("Bonne nouvelle ! Nous avons trouvé une plus grande table à manger.")

invites.insert(0, "Nikola Tesla")
invites.insert(2, "Galileo Galilei")
invites.append("Stephen Hawking")

print(f"Cher {invites[0]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")
print(f"Cher {invites[1]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")
print(f"Cher {invites[2]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")
print(f"Cher {invites[3]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")
print(f"Cher {invites[4]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")
print(f"Cher {invites[5]}, j'aimerais vous inviter à dîner. Ce serait un honneur de partager ce moment avec vous.")

Exercice 2-4 : Liste d’Invités Rétrécie

invites = ["Nikola Tesla", "Albert Einstein", "Galileo Galilei", "Isaac Newton", "Leonardo da Vinci", "Stephen Hawking"]

print("Désolé, la nouvelle table n'arrivera pas à temps. Nous ne pouvons inviter que deux personnes pour le dîner.")

invite_retire = invites.pop()
print(f"Désolé {invite_retire}, nous ne pouvons pas vous inviter au dîner.")

invite_retire = invites.pop()
print(f"Désolé {invite_retire}, nous ne pouvons pas vous inviter au dîner.")

invite_retire = invites.pop()
print(f"Désolé {invite_retire}, nous ne pouvons pas vous inviter au dîner.")

invite_retire = invites.pop()
print(f"Désolé {invite_retire}, nous ne pouvons pas vous inviter au dîner.")

print(f"Cher {invites[0]}, vous êtes toujours invité au dîner.")
print(f"Cher {invites[1]}, vous êtes toujours invité au dîner.")

del invites[:]
print("Liste d'invités finale :", invites)

Organiser une Liste

Souvent, vos listes seront créées dans un ordre imprévisible, car vous ne pouvez pas toujours contrôler la manière dont vos utilisateurs fournissent leurs données. Bien que cela soit inévitable dans la plupart des circonstances, vous voudrez souvent présenter vos informations dans un ordre particulier. Parfois, vous voudrez conserver l’ordre original de votre liste, et d’autres fois, vous souhaiterez modifier l’ordre initial. Python offre plusieurs façons d’organiser vos listes, selon la situation.

Trier une Liste de Manière Permanente avec la Méthode sort()

La méthode sort() de Python permet de trier facilement une liste. Imaginez que nous ayons une liste de voitures et que nous souhaitions changer l’ordre pour les classer par ordre alphabétique. Pour simplifier la tâche, supposons que toutes les valeurs de la liste soient en minuscules.

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
['audi', 'bmw', 'subaru', 'toyota']

La méthode sort() modifie l’ordre de la liste de manière permanente. Les voitures sont maintenant classées par ordre alphabétique, et nous ne pouvons plus revenir à l’ordre d’origine:

[‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]

Vous pouvez également trier cette liste en ordre alphabétique inversé en passant l’argument reverse=True à la méthode sort(). L’exemple suivant trie la liste des voitures en ordre alphabétique inverse:

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)
['toyota', 'subaru', 'bmw', 'audi']

Trier une Liste Temporairement avec la Fonction sorted()

Pour conserver l’ordre original d’une liste tout en la présentant de manière triée, vous pouvez utiliser la fonction sorted(). Cette fonction vous permet d’afficher votre liste dans un certain ordre sans affecter l’ordre réel de la liste.

Essayons cette fonction sur la liste des voitures:

cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Voici la liste originale:")
print(cars)

print("\nVoici la liste triée:")
print(sorted(cars))

print("\nVoici de nouveau la liste originale:")
print(cars)
Voici la liste originale:
['bmw', 'audi', 'toyota', 'subaru']

Voici la liste triée:
['audi', 'bmw', 'subaru', 'toyota']

Voici de nouveau la liste originale:
['bmw', 'audi', 'toyota', 'subaru']

Afficher une Liste dans un Ordre Inversé

Pour inverser l’ordre original d’une liste, vous pouvez utiliser la méthode reverse(). Si nous avons initialement stocké la liste des voitures dans l’ordre chronologique selon le moment où nous les avons possédées, nous pourrions facilement réorganiser la liste dans un ordre chronologique inverse:

cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)

cars.reverse()
print(cars)
['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']

La méthode reverse() change de manière permanente l’ordre d’une liste, mais vous pouvez revenir à l’ordre original à tout moment en appliquant reverse() une seconde fois à la même liste.

Trouver la Longueur d’une Liste

Vous pouvez rapidement trouver la longueur d’une liste en utilisant la fonction len(). La liste dans cet exemple comporte quatre éléments, donc sa longueur est de 4:

len(cars)
4