Geneste list comprehensions
Top! Je hebt nu de basissyntax van list comprehensions goed onder de knie. Laten we je codeervaardigheden een stapje verder brengen. In deze oefening schrijf je een list comprehension binnen een andere list comprehension: geneste list comprehensions. Het klinkt misschien lastig, maar je kunt dit!
We stappen even weg van strings. Lijsten kun je onder andere gebruiken om meer-dimensionale objecten zoals matrices te representeren. In Python kun je matrices weergeven als een lijst van lijsten. Een 5 x 5-matrix met waarden 0 tot en met 4 in elke rij ziet er bijvoorbeeld zo uit:
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]]
Jouw taak is om deze matrix te reconstrueren met geneste list comprehensions. Bedenk dat je één rij van de matrix kunt maken met een enkele list comprehension. Om de lijst van lijsten te maken, geef je die list comprehension simpelweg op als de output-expressie van de overkoepelende list comprehension:
[[output-expressie] for iteratorvariabele in iterable]
Let op: de output-expressie is hier zelf ook een list comprehension.
Deze oefening maakt deel uit van de cursus
Python-gereedschapskist
Oefeninstructies
- Maak in de interne list comprehension — dus de output-expressie van de geneste list comprehension — een lijst met waarden van
0tot en met4metrange(). Gebruikcolals iteratorvariabele. - Gebruik in het iterable-gedeelte van je geneste list comprehension
range()om 5 rijen te tellen — maak dus een lijst met waarden van0tot en met4. Gebruikrowals iteratorvariabele; je hebt deze variabele niet nodig om de waarden in de lijst van lijsten te maken.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create a 5 x 5 matrix using a list of lists: matrix
matrix = [[____] ____]
# Print the matrix
for row in matrix:
print(row)