Keď už vieme vnárať cykly, asi vás neprekvapí, že vnárať sa dajú aj listy :) Napríklad tu je list listov, ktorý obsahuje informácie o domácich zvieratách jedného z vedúcich.
zvierata = [
["Bax", "pes", "ciernobiely"],
["Kralovna", "macka", "biela"],
["Fero", "kocur", "hnedobiely"]
]
Všimnite si, že list zvierata
obsahuje 3
ďalšie listy. Každý z
týchto 3
listov popisuje jedno zviera. List konkrétneho zvieraťa
obsahuje jeho meno, typ a farbu.
Vnorené listy indexujeme rovnako ako jednorozmerné. Keď teda
zaindexujeme do listu zvierata
, dostaneme list.
# zvierata = ...z predzchadzajuceho prikladu...
print(zvierata[1])
# Vystup (list): ["Kralovna", "macka", "biela"]
Tento list môžeme opäť indexovať.
# zvierata = ...z predzchadzajuceho prikladu...
# Farba prveho (nulteho) zvierata
print(zvierata[0][2])
# Vystup: "ciernobiely"
Skúsme teraz napísať program, ktorý vypíše mená všetkých zvierat.
# zvierata = ...z predzchadzajuceho prikladu...
for zviera in zvierata:
print(zviera[0])
# Vystup (skrateny na jeden riadok):
# Bax Kralovna Fero
Vo for cykle prejdeme cez vsetky zvierata
. Premenná zviera
bude
preto postupne obsahovať polia ["Bax", "pes", "ciernobiely"]
až
["Fero", "kocur", "hnedobiely"]
. Z týchto polí potom vypisujeme 0
-tú
hodnotu, čo je meno.
Ako načítať dvojrozmerné pole1 (tabuľku čísel)? Pomocou vnorených cyklov.
# Program dostane cisla m a n na jednom riadku, pocet riadkov a pocet stlpcov tabulky.
# Nasledne dostane jednotlive hodnoty tabulky.
rozmery = input().split()
# Trik: skratka za
# m = int(rozmery[0])
# n = int(rozmery[1])
m, n = int(rozmery[0]), int(rozmery[1])
tabulka = []
for i in range(m):
riadokStr = input().split()
riadokInt = []
for x in riadokStr:
riadokInt.append(int(x))
tabulka.append(riadokInt)
print(tabulka)
# Vstup:
# 3 4
# 1 2 3 4
# 5 6 7 8
# 9 10 11 12
# Vystup:
# [
# [1, 2, 3, 4],
# [5, 6, 7, 8],
# [9, 10, 11, 12]
# ]
Dvojrozmerné pole môže znieť odstrašujúco, ale s tým, čo už vieme, je vysvetlenie hračka. Je to jednoducho list listov. Pole je list a dvojrozmerné sa volá preto, lebo je to v podstate tabuľka, v ktorej môžeme chodiť po riadkoch aj stĺpcoch. ↩