Une salle de cinéma
Au cinéma, les places sont rangées en rangs. Trois rangs, quatre places par rang.
Pour dire « le rang 2, la place 3 », il faut deux numéros.
Une liste simple n’a qu’un numéro. Alors on met des listes dans une liste.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Liste de listes | Une liste dont chaque élément est lui-même une liste. | [[1, 2], [3, 4]] |
| Ligne | Une des petites listes. Elle se lit de gauche à droite. | salle[0] est le premier rang. |
| Colonne | La place d’un élément dans sa ligne. Elle se lit de haut en bas. | La colonne 2 est la troisième place. |
| Case | Un élément de la grille, à une ligne et une colonne. | salle[1][2] |
| Grille | Un tableau de lignes et de colonnes, comme une feuille quadrillée. | Un plan de salle. |
| Boucle imbriquée | Une boucle placée dans une autre boucle. | for ligne ... for case ... |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Lire une case
Une grille est une liste dans laquelle chaque élément est une ligne.
Pour lire une case, donne deux indices : d’abord la ligne, puis la colonne. salle[1][2] veut dire : ligne 1, colonne 2.
On compte toujours à partir de 0.
À toi : la salle de cinéma
# 0 = place libre, 1 = place prise
salle = [
[0, 1, 1, 0],
[1, 0, 0, 0],
[0, 0, 1, 1],
]
print(salle[0])
print(salle[1][0])
print(salle[2][3])
# Affiche la place du rang 2, colonne 2.
# Que dit-elle : libre ou prise ?
Exemple travaillé : repérer une place
| Ligne | Colonne 0 | Colonne 1 | Colonne 2 | Colonne 3 |
|---|---|---|---|---|
| Ligne 0 | 0 | 1 | 1 | 0 |
| Ligne 1 | 1 | 0 | 0 | 0 |
| Ligne 2 | 0 | 0 | 1 | 1 |
| salle[2][3] | ligne 2 | colonne 3 | valeur 1 | place prise |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Changer une case
Pour changer une case, écris ses deux indices, puis = et la nouvelle valeur.
Pour compter toutes les places prises, il faut voir chaque case. On utilise une boucle dans une boucle : la première prend chaque ligne, la seconde chaque case de cette ligne.
À toi : compter les places prises
salle = [
[0, 1, 1, 0],
[1, 0, 0, 0],
[0, 0, 1, 1],
]
salle[1][1] = 1 # quelqu’un s’assoit
prises = 0
for rang in salle:
for place in rang:
if place == 1:
prises = prises + 1
print("Places prises :", prises)
# Fais asseoir quelqu’un en ligne 0, colonne 0. Relance.
Contrôle rapide
À toi de jouer
Contrôle rapide
3 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Le piège de la copie
# Mauvaise idée : les trois lignes sont la même liste.
mauvaise = [[0, 0, 0]] * 3
mauvaise[0][0] = 9
print(mauvaise)
# Bonne idée : on fait trois listes différentes.
bonne = []
for i in range(3):
bonne.append([0, 0, 0])
bonne[0][0] = 9
print(bonne)