Listes de listes
Travailler avec les interfaces graphiques nécessite souvent d'avoir recours à des tableaux, en particulier pour représenter des grilles (plateaux) de jeu.
On considère donc le tableau ci-contre, contenant la liste alphabétique des caractères de 'a' à 'x'. On rappelle
que la case (1 ; 5) contient le caractère 'n'.
Pour représenter efficacement ce tableau dans un programme, on utilise une liste de listes affectée à une variable
cases (par exemple) :
cases = [['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'],
['i', 'j', 'k', 'l', 'm', 'n', 'o', 'p'],
['q', 'r', 's', 't', 'u', 'v', 'w', 'x']]
Ainsi, cases est une liste des lignes du tableau, et chaque ligne est une liste des cases qu'elle contient. Les
espaces, indentations et sauts à la ligne permettent une meilleure «vision» de cette liste de listes et ne sont pas
interprétés par Python.
Anticipez, sur un papier, l'affichage qui sera obtenu lors de l'exécution des instructions ci-dessous. Vérifiez ensuite chaque réponse à l'aide de votre interpréteur Python.
print(cases[1][5])affiche...print(cases[2])affiche...print(cases[2][0])affiche...print(cases[0])affiche...print(cases[0][2])affiche...print(cases[5][1])affiche...
Lorsqu'on manipule une (ou plusieurs) liste de listes, il est indispensable d'avoir un affichage agréable des éléments de cette liste. Testez le programme ci-dessous puis modifiez-le pour chaque nouvelle ligne (liste !) apparaisse sous la précédente :
cases = [['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'],
['i', 'j', 'k', 'l', 'm', 'n', 'o', 'p'],
['q', 'r', 's', 't', 'u', 'v', 'w', 'x']]
print(cases)
Une piste ?
Chaque sous-liste est un élément de la liste principale.
Une autre piste ?
Essayez de trouver par vous-même avant de vous précipiter sur la solution !
Solution
cases = [['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'],
['i', 'j', 'k', 'l', 'm', 'n', 'o', 'p'],
['q', 'r', 's', 't', 'u', 'v', 'w', 'x']]
for ligne in cases:
print(ligne)
