Python

Liste 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.

Application

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 l'interface de programmation.

  1. print(cases[1][5]) affiche...
  2. print(cases[2]) affiche...
  3. print(cases[2][0]) affiche...
  4. print(cases[0]) affiche...
  5. print(cases[0][2]) affiche...
  6. print(cases[5][1]) affiche...

					
					

Application très utile

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 :


					
					
  • Une piste ?
  • Une autre piste ?
  • Une solution ?
Chaque «sous-liste» est un élément de la liste principale...
Essayez de trouver par vous même avant de vous précipiter sur la 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)