Des casiers aux tableaux
La liste et le tableau 2D, en trois dimensions
Une variable, c'est une boîte avec une seule chose dedans.
Une liste, c'est une boîte à casiers numérotés : une seule variable, plusieurs valeurs rangées dans l'ordre.
Le numéro gravé sur chaque casier s'appelle l'indice.
Les numéros sur la face avant sont les indices.
notes[2] se lit « le casier numéro 2 de la boîte notes ».
Résultat :
On ouvre le casier, on regarde : la valeur reste dans la boîte.
Le = vide le casier 1 et y range 88.
L'ancienne valeur, 85, est perdue : un casier ne contient qu'une chose à la fois.
Avant
Après
Résultat :
4 casiers : le dernier indice est 3. Demander le casier 4, c'est ouvrir un casier dessiné en pointillés.
Le casier 4 n'existe pas dans la boîte.
len()Résultat :
len compte 4 casiers, mais le dernier porte le numéro 3 : le dernier indice est toujours len(notes) - 1.
append colle un nouveau casier au bout de la boîte.
insert(indice, valeur) ajoute un casier au milieu : ceux qui suivent glissent d'un cran et changent de numéro.
Chaque exemple part de la boîte d'origine [72, 85, 64, 90].
pop(indice) retire le casier numéro 2 (il contenait 64) ; les suivants reculent d'un cran.
remove(valeur) cherche le premier casier qui contient 85 et le retire.
Le piège : pop reçoit un numéro de casier, remove reçoit un contenu.
Résultat :
range(len(notes)) fournit les numéros 0, 1, 2, 3 : un tour de boucle par casier.
Avant de cliquer, prédisez ce que donne chaque expression :
notes[0]notes[3]notes[len(notes) - 1]Puis cliquez sur un casier pour l'ouvrir.
Résultat :
À chaque tour, la variable note reçoit le contenu du casier suivant, de gauche à droite.
for indice in range(len(notes)) donne les numéros ; for note in notes donne directement les contenus. On prend la seconde quand le numéro ne sert à rien.
Résultat :
| note | note >= 80 | compteur |
|---|---|---|
| 72 | False | 0 |
| 85 | True | 1 |
| 64 | False | 1 |
| 90 | True | 2 |
Le compteur naît avant la boucle (à 0), grandit dans la boucle, et on l'affiche après.
Une chaîne de caractères range une lettre par casier, avec les mêmes indices.
Les casiers d'une chaîne sont scellés : on les lit, on ne les remplace pas.
Le tableau à deux dimensions
Trois stations météo relèvent la température pendant quatre jours. Chaque tablette du meuble est une boîte à casiers : une liste de 4 valeurs.
temperatures[1] donne une tablette entière : [8, 10, 7, 6]
Une liste de listes : le meuble contient des tablettes, chaque tablette contient des casiers.
[2] : d'abord la tablette 2 (la rangée).[3] : puis la porte 3 de cette tablette (la colonne).Résultat :
Toujours dans cet ordre : tableau[rangée][colonne], et les deux numéros commencent à 0.
Ouvrez toutes les portes et regardez le meuble de face : c'est un tableau de données, comme dans un tableur.
| Jour 0 | Jour 1 | Jour 2 | Jour 3 | |
|---|---|---|---|---|
| Station 0 | 12 | 14 | 9 | 11 |
| Station 1 | 8 | 10 | 7 | 6 |
| Station 2 | 15 | 17 | 16 | 13 |
temperatures[2][3] : station 2, jour 3, 13 °C.Résultat :
Quelle expression donne la température de la station 2 au jour 1 ?
temperatures[2][1] → 17 °C
Cliquez ensuite sur les portes : chacune affiche l'expression qui l'ouvre.
0 à len(liste) - 1.notes[2] lit le casier, notes[2] = 70 remplace son contenu.append, insert, pop (un numéro), remove (un contenu).tableau[rangée][colonne] : la tablette, puis la porte.Dans un pilulier, personne ne cherche « le casier numéro 3 » : on ouvre le casier JEU.
Et si, au lieu d'un numéro, chaque casier portait un nom choisi par nous ? Python sait faire ça aussi… à suivre.