Vnořené list comprehensions
Skvěle! Teď už základní syntaxi list comprehensions dobře ovládáš. Pojďme tvoje dovednosti posunout o kousek dál. V tomto cvičení napíšeš list comprehension uvnitř jiného list comprehension – jinými slovy, vnořené list comprehensions. Zní to možná trochu složitě, ale zvládneš to!
Na chvíli odložíme řetězce stranou. Seznamy se dají mimo jiné využít k reprezentaci vícerozměrných objektů, jako jsou matice. V Pythonu lze matici vyjádřit jako seznam seznamů. Například matice 5 × 5 s hodnotami 0 až 4 v každém řádku vypadá takto:
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]]
Tvým úkolem je tuto matici znovu vytvořit pomocí vnořených list comprehensions. Připomeň si, že jeden řádek matice dokážeš sestavit jediným list comprehension. Aby vznikl seznam seznamů, stačí tento list comprehension použít jako výstupní výraz celkového list comprehension:
[[výstupní výraz] for proměnná iterátoru in iterovatelný objekt]
Všimni si, že výstupní výraz je zde sám o sobě list comprehension.
Toto cvičení je součástí kurzu
Python Toolbox
Pokyny k cvičení
- Ve vnitřním list comprehension – tedy ve výstupním výrazu vnořeného list comprehension – vytvoř seznam hodnot od
0do4pomocírange(). Jako proměnnou iterátoru použijcol. - V části iterovatelného objektu vnořeného list comprehension použij
range()pro vytvoření 5 řádků – tedy seznam hodnot od0do4. Jako proměnnou iterátoru použijrow; všimni si, že tuto proměnnou k vytváření hodnot v seznamu seznamů nepotřebuješ.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Create a 5 x 5 matrix using a list of lists: matrix
matrix = [[____] ____]
# Print the matrix
for row in matrix:
print(row)