Compréhensions de listes imbriquées
Parfait ! À ce stade, vous maîtrisez bien la syntaxe de base des compréhensions de listes. Poussons un peu plus vos compétences en écriture de code. Dans cet exercice, vous allez écrire une compréhension de liste à l’intérieur d’une autre compréhension de liste, autrement dit des compréhensions de listes imbriquées. Cela peut sembler un peu délicat, mais vous allez y arriver !
Mettons de côté les chaînes de caractères un instant. L’une des utilisations des listes est la représentation d’objets multidimensionnels comme les matrices. En Python, on peut représenter une matrice par une liste de listes. Par exemple, une matrice 5 x 5 avec les valeurs de 0 à 4 sur chaque ligne peut s’écrire :
matrix = [[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4]]
Votre tâche est de recréer cette matrice en utilisant des compréhensions de listes imbriquées. Rappelez-vous que vous pouvez créer l’une des lignes de la matrice avec une seule compréhension de liste. Pour créer la liste de listes, il vous suffit de fournir cette compréhension de liste comme expression de sortie de la compréhension globale :
[[output expression] for iterator variable in iterable]
Notez qu’ici, l’expression de sortie est elle-même une compréhension de liste.
Cet exercice fait partie du cours
Boîte à outils Python
Instructions
- Dans la compréhension de liste interne, c’est-à-dire l’expression de sortie de la compréhension imbriquée, créez une liste de valeurs de
0à4en utilisantrange(). Utilisezcolcomme variable d’itération. - Dans la partie itérable de votre compréhension de liste imbriquée, utilisez
range()pour compter 5 lignes — autrement dit, créez une liste de valeurs de0à4. Utilisezrowcomme variable d’itération ; notez que vous n’aurez pas besoin de cette variable pour créer les valeurs dans la liste de listes.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create a 5 x 5 matrix using a list of lists: matrix
matrix = [[____] ____]
# Print the matrix
for row in matrix:
print(row)