9.4 Listes imbriquées
Objectifs d'apprentissage
À la fin de cette section, vous devriez être en mesure de :
- Démontrer l'utilisation d'une liste de listes pour structurer des données.
- Démontrer l'adressage d'éléments individuels à l'aide de l'indexation multidimensionnelle.
- Utiliser des boucles imbriquées pour parcourir une liste de listes.
Liste de listes
Les listes peuvent être composées de tout type d'élément. Un élément de liste peut également être une liste. Ex. : [2, [3, 5], 17] est une liste valide dont la liste [3, 5] est l'élément à l'indice 1.
Lorsqu'une liste est un élément à l'intérieur d'une liste plus grande, elle est appelée une liste imbriquée (nested list). Les listes imbriquées sont utiles pour représenter des données multidimensionnelles. Lorsque chacun des éléments d'une liste plus grande est une liste plus petite, la liste plus grande est appelée une liste de listes (list-of-lists).
Ex. : Un tableau peut être stocké sous la forme d'une liste de listes à deux dimensions, où chaque ligne de données est une liste dans la liste de listes.
Concepts en pratique
Listes
Pour chacune des questions ci-dessous, considérez la matrice suivante :
Utiliser des boucles imbriquées pour parcourir des listes imbriquées
Une structure de boucles imbriquées peut être utilisée pour parcourir une liste de listes. Pour une liste de listes à deux dimensions, une boucle for externe peut être utilisée pour les lignes, et une boucle for interne pour les colonnes.
Exemple 9.4
Parcourir une liste de listes
Le code ci-dessous montre comment parcourir une liste de listes.
La boucle externe à la ligne 9 parcourt élément par élément la liste plus grande. Chaque élément de la liste plus grande est une liste. La boucle interne à la ligne 10 parcourt chaque élément de chaque liste imbriquée.
1 | """Iterating a list-of-lists.""" |
2 | |
3 | # Create a list of numbers |
4 | list1 = [[1, 2, 3], |
5 | [1, 4, 9], |
6 | [1, 8, 27]] |
7 | |
8 | # Iterating the list-of-lists |
9 | for row in list1: |
10 | for num in row: |
11 | print(num, end=" ") |
12 | print() |
La sortie du code ci-dessus est :
1 2 3
1 4 9
1 8 27
Concepts en pratique
Parcourir une liste de listes
Pour chaque question ci-dessous, considérez la liste suivante :
my_list = [[7, 4, 5, 12],
[24, 3, 9, 16],
[12, 8, 91, -5]]
À vous d'essayer
Multiplication de matrices
Écrivez un programme qui calcule le produit matriciel des matrices matW et matZ ci-dessous et affiche le résultat. Le résultat attendu est présenté.
Dans la matrice résultat, chaque élément est calculé en fonction de la position de l'élément. Le résultat à la position [i][j] est calculé en utilisant la ligne i de la première matrice, W, et la colonne j de la deuxième matrice, Z.
Ex. :
result[1][2] = (ligne 1 dans W) multipliée par (colonne 2 dans Z)