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 :
score1 = 15
score2 = 22
score3 = 120
score4 = 12
score5 = 37
ce 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
total = score1 + score2 + score3 + score4 + score5 + score6 + score7 + ...
(les ... devant être complétés à la main par le programmeur !)
- soit créer une variable qui contient toutes les valeurs, ce qui s'écrirait par exemple en Python :
scores = [15, 22, 120, 12, 37]
Le calcul de la somme se ferait alors ainsi :
somme = 0
for score in scores:
somme = somme + score
La boucle for
permet ici à la variable score
de prendre successivement chaque valeur de la liste scores
.
Présentation rapide
Visionnez la vidéo ci-dessous.
Vous pouvez mettre en pause la vidéo quand vous le souhaitez 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.
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 :
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 = []
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)
renverra 3, qui est le nombre d'éléments de la liste ["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]
renvoie le texte "Choux".
(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
Si je veux modifier tous les éléments d'une liste, j'utiliserai une boucle for.
Dans l'exemple suivant, j'augmente toutes les valeurs de 5 :
maliste = [7, 9, 5, 10, 3]
for i in range(len(maliste)):
maliste[i] = maliste[i] + 5
maliste
Ici len(maliste)
vaut 5 donc range(len(maliste))
donnera les indices 0 à 4.
- 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.
print()
ze_liste = [val1, val2, val3, etc.]
et récupérer un de ses éléments ainsi :
ze_liste[...]
la longueur de la liste s'obtient en tapant :
len(ze_liste)
Exercices : indices et valeurs