Les listes dans Python

Si vous venez d'un autre langage de programmation, on peut dire que les listes en Python correspondent aux tableaux mais en plus flexible.

Si c'est la première fois que vous entendez les expressions "liste" et "tableau", ne vous inquiétez pas. Nous allons dans cette leçon comprendre leur signification et apprendre à les utiliser.

Qu'est-ce que c'est ?

Une liste est un groupe de donnée qui peuvent être de type différents et stocker dans une variable.

Par exemple, l'illustration ci-dessous permet de comprendre ce qu'est une liste. Le numéro à droite du nom est l'index ou la position dans liste.

Une liste de nom

L'index commence à 0 et c'est normal. Vous allez découvrir plus tard pourquoi.

Créer une liste

Maintenant que nous savons ce qu'est une liste. Nous allons en créer une dans Python. Pour que les choses soient claires pour vous, nous allons transformer l'exemple de l'illustration en une vrai liste.

noms = ["Bob", "Luc", "Max", "Kim"]

Et voilà notre liste est prête.

Récupérer un élément dans une liste

Il nous faut apprendre à extraire un élément de la liste pour pouvoir l'utiliser dans le programme.

Par exemple récupérer le noms de l'index "2".

noms = ["Bob", "Luc", "Max", "Kim"]
print(noms[2])
# Affichera "Max"

Avez-vous compris le principe ? Il faut utiliser le nom de la liste. Dans notre cas liste noms. Utilisez ensuite les []. Dans ces crochets, indiquez l'index ou la position du nom : 2 pour "Max".

Faite très attention. Dans les langages de programmation l'index ou la position dans une liste commence par 0 et non 1. Au début, ce genre d'erreur arrive fréquemment.

Changer un élément de la liste

Nous aurons besoin de changer le contenu de notre liste quelques-fois dans nos programmes. Et nous allons voir ensemble comment y arriver.

noms = ["Bob", "Luc", "Max", "Kim"]
noms[2] = "Zoé"
print(noms)
# Affichera ['Bob', 'Luc', 'Zoé', 'Kim']

Dans la ligne numéro deux nous avons changé "Max" par "Zoé". Et cela a fonctionné. En effet, lorsque nous affichons le tableau, nous nous rendons compte que la changement a bien eu lieu.

Boucle (itérer une liste) : for

Dans la leçon sur les boucles, nous avons appris à utiliser le mot clé for.

Il est tout à fait possible d'utiliser cette méthode pour itérer un tableau.

noms = ["Bob", "Luc", "Max", "Kim"]
for nom in noms:
    print(nom)
# Affichera :
# Bob
# Luc
# Max
# Kim

Voici comment cette boucle fonctionne dans le cas d'une liste : for <nom d'un élément> in <liste> .

Si vous le souhaitez, vous pourrez également récupérer l'index de l'élément.

noms = ["Bob", "Luc", "Max", "Kim"]
for i, nom in enumerate(noms):
    print(f"{i} : {nom}")
# Affichera :
# 0 : Bob
# 1 : Luc
# 2 : Max
# 3 : Kim

Pour récupérer l'index, il faut ajouter une variable que nous avons appelé i. Cette variable va récupérer l'index, il faut la placer juste après le for.

Vous avez très certainement noté, une fonction qu'il nous faut également ajouter : enumerate(). En effet, la fonction enumerate() en Python est un moyen pratique d'obtenir à la fois l'index (la position) et la valeur de chaque élément lors de l'itération sur une liste.

Autres opérations intéressantes

Connaitre la taille d'une liste : len()

Il existe une fonction très utile qui permet de connaître la taille d'une liste : len().

Ci-dessous un exemple de son utilisation.

noms = ["Bob", "Luc", "Max", "Kim"]
taille = len(noms)
print(taille)
# Affichera 4

La fonction retourne 4 car la liste contient "4" éléments.

Supprimer un élément grâce à l'index

Nous avons acquis la capacité de supprimer un élément dans une liste.

Il existe une autre méthode qui nous permettra de faire la même chose mais au lieu d'utiliser le nom de l'élément, nous allons utiliser son index.

ma_liste = ["un", "deux", "trois", "quatre", "cinq"]

# Supprimer l'élément à l'index 1
element = ma_liste.pop(1)
print(element)  # Affiche "deux"
print(ma_liste)  # Affiche ["un", "trois", "quatre", "cinq"]

Retenez bien que la méthode .pop renvoie dans une variable une copie du tableau modifié (avec l'élément supprimé) et ne modifie pas le tableau en question.