Compréhensions de listes imbriquées
Super ! À 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, donc des compréhensions de listes imbriquées. Ça peut sembler un peu délicat, mais vous allez y arriver !
Faisons une petite pause des chaînes de caractères. Une utilisation courante des listes est la représentation d'objets multidimensionnels comme les matrices. En Python, une matrice peut être représentée par une liste de listes. Par exemple, une matrice 5 x 5 avec les valeurs de 0 à 4 dans 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 à l'aide de compréhensions de listes imbriquées. Rappelez-vous que vous pouvez créer une ligne de la matrice avec une seule compréhension de liste. Pour créer la liste de listes, vous n'avez qu'à utiliser cette compréhension de liste comme expression de sortie de la compréhension de liste globale :
[[expression de sortie] for variable d'itération in itérable]
Notez qu'ici, l'expression de sortie est elle-même une compréhension de liste.
Cette activité fait partie du cours
Boîte à outils Python
Instructions de l’exercice
- 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à4à l'aide derange(). Utilisezcolcomme variable d'itération. - Dans la partie itérable de votre compréhension imbriquée, utilisez
range()pour compter 5 lignes — c'est-à-dire créer 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 ce code d’exemple.
# Create a 5 x 5 matrix using a list of lists: matrix
matrix = [[____] ____]
# Print the matrix
for row in matrix:
print(row)