Prestavte si, že na vstupe nedostaneme zopár čísel, ale niekoľko desiatok. Kam by sme tieto čísla uložili? Mohli by sme si vytvoriť desiatky premenných a vstup naukladať do nich. To by však nebolo veľmi prehľadné; a navyše čo ak by bol počet čísel na vstupe premenlivý? (Napríklad prvé číslo vstupu by určovalo koľko čísel bude nasledovať)
Pre takýto prípad musíme rozšíriť náš arzenál o list
. List deklaruje
naraz množstvo premenných uložených za sebou, ku ktorým sa dá
pristupovať pomocou ich pozície.
# List obsahujuci cisla 1 az 5
cisla = [1, 2, 3, 4, 5]
# Vypisanie prveho prvku pola "cisla".
print(cisla[0])
# Vystup: 1
# Chyba!
print(cisla[5])
# IndexError: list index out of range
# Python nam hovori, ze index 5 je mimo povoleny rozsah (index out of range)
# Pole "cisla" ma 5 prvkov indexovanych od 0, takze posledny platny index je 4, index 5 je neplatny.
Ako ukazuje príklad vyššie, vytvorenie listu má formát
[<hodn1>, <hodn2>, ...]
, kde hodnota môže byť ľubovoľná premenná alebo
hodnota (literál). Listy sú číslované od 0
. Ak preto vytvoríme
reťazec dĺžky 5
ako v príklade vyššie, platné indexy (pozície) sú 0
až 4
.
List si tiež môžete predstaviť veľa krabičiek vedľa seba, ku ktorým
pristupujeme menom listu a zároveň pozíciou. Pritom krabičky na sebe
nijako nezávisia a môžu obsahovať rôzne hodnoty a dokonca, ako ukazuje
list z obrázku, aj rôzne typy. V liste z obrázka je na pozíciách 0
,
3
string
, na pozíciách 1
, 2
int
, atď.
Na koniec listov často potrebujeme pridávať hodnotu. Na to slúži
metóda append
1. Táto metóda pridá novú
hodnotu na koniec listu. Ak chceme pristúpiť k niektorému z prvkov
listu, stačí za menom listu pozíciu obaliť do hranatých zátvoriek, teda
<list>[<pozicia>]
. Napríklad cisla[0]
.
# Program dostane cislo n, pocet cisel, ktore budu nasledovat
# na dalsich riadkoch. Nasledne nacita tieto cisla a vypise ich.
n = int(input())
vstup = []
for i in range(n):
vstup.append(int(input()))
for i in range(n):
print(vstup[i])
# Napriklad pre vstup:
# 3
# 1
# 5
# 3
# Vyda program vystup (tu skratene do jedneho riadku):
# 1 5 3
Tento program je možno najkomplexnejší, s ktorým sme sa zatiaľ v tomto
kurze stretli. Na začiatku načíta číslo n
, počet čísel, ktoré budú
nasledovať na samostatných riadkoch. Následne v cykle od 0
po n - 1
(vrátane) načíta vždy jedno číslo int(input())
a pripojí ho do listu
vstup
pomocou append
.
Následne program načítané čísla vypíše. Vo for
-cykle od 0
po n - 1
postupne prístupi pomocou premennej i
k prvkom poľa na indexoch 0
až
n - 1
a vypíše ich.
Métoda je funkcia naviazaná na konkrétny objekt
,
pričom objekt v Pythone je všetko (premenné, hodnoty, funkcie, ...). Zavolať metódu môžeme ako <objekt>.<metoda>()
↩