Les listes en Python⚓︎
Les listes
Le programme de spécialité mathématique de Première comporte quelques éléments de programmation liés à ce que l'on appelle les listes.
Les listes servent à stocker des données.
Principe⚓︎
Supposons que, dans un jeu, il faille stocker les scores de cinq joueurs, disons :
15 ; 22 ; 120 ; 12 ; 37
pour cela, je peux :
-
soit créer cinq variables, chacune contenant un score, ce qui s'écrirait dans la plupart des langages informatiques :
🐍 Script Pythonce qui présente plusieurs inconvénients : la saisie est longue et les opérations sur ces valeurs seront pénibles ; imaginez qu'il y ait 100 valeurs à stocker et que l'on souhaite ensuite en faire la somme : il faudrait taper quelque chose comme :score1 = 15 score2 = 22 score3 = 120 score4 = 12 score5 = 37
🐍 Script Python(les ... devant être complétés à la main par le programmeur !)score1 = 15 score2 = 22 score3 = 120 ... total = score1 + score2 + score3 + score4 + score5 + score6 + score7 + ...
-
soit créer une variable qui contient toutes les valeurs, ce qui s'écrirait par exemple en Python :
🐍 Script PythonLe calcul de la somme se ferait alors ainsi :scores = [15, 22, 120, 12, 37]
🐍 Script PythonLa bouclesomme = 0 # initialisation à ne pas oublier ! for score in scores: somme = somme + score
for
permet ici à la variablescore
de prendre successivement chaque valeur de la listescores
.
Présentation rapide⚓︎
Visionnez la vidéo ci-dessous et mettez-la en pause pour tester les commandes dans la fenêtre placée en dessous (remarque : inutile d'utiliser print()
pour voir les valeurs des variables en mode Console, par exemple taper maListe[3]
puis ++Entrée++ suffit ; pas besoin de print(maListe[3])
).
Mais... ça me rappelle quelque chose !
Ou en tout cas, cela le devrait !
Sur le principe, les listes se rapprochent beaucoup des suites de nombres.
Ainsi, parlant de la liste 15 ; 22 ; 120 ; 12 ; 37, je pourrais écrire en mathématiques :
u0 = 15 ; u1 = 22 ; u2 = 120 ; u3 = 12 ; u4 = 37.
J'ai ici choisi de numéroter les termes de la suite à partir de l'indice 0, ce qui est fréquent en mathématiques.
De même, la commande :
maliste = [15, 22, 120, 12, 37]
définit une liste de valeurs numérotées :
valeurs | 15 | 22 | 120 | 12 | 37 |
indices | 0 | 1 | 2 | 3 | 4 |
Remarquez que la cinquième valeur a pour indice 4...
Attention
- Le premier élément d'une liste a toujours pour indice 0.
- A chaque indice correspond une seule valeur, on retrouve donc une valeur grâce à son indice (mais il arrive qu'une valeur corresponde à plusieurs indices).
- La confusion entre indice et valeur est une source d'erreur très fréquente !
Il y a néanmoins une différence essentielle entre les suites et les listes : les listes ont forcément un nombre fini d'éléments !
Création d'une liste par "extension"⚓︎
Je vous invite à tester les commandes qui suivent dans cette console Python :
Comme nous l'avons déjà vu, je peux créer une liste en énumérant toutes ses valeurs, séparées par des virgules, entre crochets :
maliste = [15, 22, 120, 12, 37]
Remarque : une liste peut contenir autre chose que des nombres, comme une liste de courses :
ma_liste_de_courses = ["Beurre", "Pain", "Fromage"]
ou même une liste d'objets de différentes natures (peu utilisé en pratique) :
une_liste = ["Carottes", 25, 3.14, "Choux", -1.3]
ou même rien du tout (nous verrons plus tard que c'est utile !) :
liste = []
Remarque
Nous verrons plus tard d'autres façons de créer des listes (avec append
ou en compréhension).
Longueur d'une liste⚓︎
La longueur d'une liste peut être obtenue avec la fonction len
(raccourci de length : longueur en anglais) :
len(ma_liste_de_courses)
["Beurre", "Pain", "Fromage"]
.
Accéder à un élément de la liste⚓︎
Pour accéder à un élément de la liste, j'écris le nom de la liste suivie de l'indice de cet élément entre crochets :
une_liste[3]
(en mode éditeur Python (quand nous écrivons des programmes), l'affichage se ferait avec un print()
)
Modifier une valeur d'une liste⚓︎
Il est possible de modifier une valeur d'indice connu. Par exemple, si je veux modifier la troisième valeur d'une liste :
liste = [1, 4, 8, 16, 25, 36]
liste[2] = 9
liste
Remarque
Pour modifier tous les éléments d'une liste, utilisez une boucle for
, nous y reviendrons.
Exercice
Dans la console Python ci-dessous :
- créez une liste (appelez-là comme bon vous semble) ;
- demandez l'affichage(*) de cette liste ;
- demandez l'affichage de la longueur de cette liste ;
- demandez l'affichage de son premier élément ;
- demandez l'affichage de son dernier élément ;
- modifiez la deuxième valeur de votre liste ;
- demandez à nouveau l'affichage de la liste pour vérifier qu'elle a bien été modifiée.
(*) en mode console, il n'y a pas besoin de print()
À retenir
-
pour créer une liste :
🐍 Script Pythonze_liste = [val1, val2, val3, etc.]
-
pour récupérer un de ses éléments :
🐍 Script Pythonze_liste[...]
- la longueur de la liste s'obtient en tapant :
🐍 Script Python
len(ze_liste)
Exercices : indices et valeurs
Réussissez chaque exercice au moins deux fois chacun (utilisez le bouton "Recommencer l'exercice").