Kódím.cz
2

Slicing, metody, moduly

Doplníme znalosti a další základy

Čtení na doma - vícerozměrné struktury

Na rozdíl od tabulek můžeme jít v seznamech do více rozměrů než do dvou. Uvažujme například seznam vysledky, který obsahuje jména a výsledky prvních čtyř běžců maratonu. Seznam je vícerozměrný. Na nulté pozici každého z vnořených seznamů je jméno běžce a na první pozici je seznam s časem běžce, který obsahuje počet hodin, minut a sekund, které běžec potřeboval na překonání trati.

vysledky = [
    ["Brunner Radek", [3, 0, 9]], 
    ["Urban Jaroslav", [3, 11, 44]], 
    ["Andrle Jakub", [3, 12, 21]], 
    ["Fiala Stanislav", [3, 13, 31]]
]

Pojďme si nyní rozkreslit jednotlivé úrovně seznamu. Obrázek v plné velikosti je zde.

Můžeme se podívat i na indexování pomocí záporných indexů.

Vyberme ze seznamu běžce na nulté pozici a uložme ho do proměnné vitez.

vitez = vysledky[0]

Tím nám "zmizelo" jedno patro.

Nyní do proměnné cas_viteze uložíme čas vítěze.

cas_viteze = vysledky[0][1]

Tím nám "zmizelo" další patro a dopracovali jsme se k jednorozměrnému seznamu.

Nyní použijeme slicing a vytáhneme si závodníky, kteří byli "na bedně", tj. tři nejrychlejší běžce. To uděláme následujícím příkazem:

vitezove = vysledky[:3]

Tentokrát nám z obrázku "nezmizelo" celé patro. Výběr pomocí rozsahu totiž zachová dimenzi původního seznamu.

Obrázek v plné velikosti je zde.

Cvičení: Vícerozměrné struktury