Stewdent.eu
▾

Zoznamy a polia

Zoznam (list) je usporiadaná kolekcia hodnôt, ktoré môžeš meniť. Umožňuje ukladať viacero súvisiacich hodnôt pod jedným názvom.

Posledná aktualizácia: 17. februára 2026

★★☆☆☆ Stupeň 2computingprogrammingzoznamypolialist4 min čítania

Nahlásiť chybu

Premenná uchováva jednu hodnotu. Čo ak potrebuješ uložiť zoznam 30 mien žiakov? Písať 30 premenných by bolo nešikovné. Na to slúžia zoznamy — štruktúry na uchovávanie viacerých hodnôt pod jedným názvom.

Vytvorenie zoznamu

ovocie = ["jablko", "banán", "čerešňa"]
cisla = [1, 2, 3, 4, 5]
mieszany = [42, "ahoj", True, 3.14]   # zoznam môže mať rôzne typy
prazdny = []                           # prázdny zoznam

Prístup k prvkom

Rovnako ako reťazce, zoznamy používajú indexovanie od 0:

ovocie = ["jablko", "banán", "čerešňa", "hrozno"]

print(ovocie[0])    # jablko
print(ovocie[2])    # čerešňa
print(ovocie[-1])   # hrozno (posledný)
print(len(ovocie))  # 4 (počet prvkov)

Zmena prvkov

Na rozdiel od reťazcov, zoznamy sú meniteľné — môžeš meniť prvky na mieste:

znamky = [1, 2, 3, 2, 1]
znamky[2] = 1          # zmení tretiu známku na 1
print(znamky)          # [1, 2, 1, 2, 1]

Pridávanie a odstraňovanie prvkov

nakupny_zoznam = ["mlieko", "chlieb"]

nakupny_zoznam.append("maslo")        # pridá na koniec
nakupny_zoznam.insert(1, "vajíčka")   # vloží na pozíciu 1
print(nakupny_zoznam)
# ["mlieko", "vajíčka", "chlieb", "maslo"]

nakupny_zoznam.remove("chlieb")       # odstráni prvý výskyt "chlieb"
posledny = nakupny_zoznam.pop()       # odstráni a vráti posledný prvok
print(posledny)                        # maslo
Poznámka

append() je rýchla operácia — pridáva na koniec. insert() je pomalšia pri veľkých zoznamoch, pretože musí posunúť všetky nasledujúce prvky.

Prechádzanie zoznamu

mena = ["Anna", "Boris", "Cecília"]

# For loop — najčastejší spôsob
for meno in mena:
    print(f"Ahoj, {meno}!")

# S indexom pomocou enumerate
for i, meno in enumerate(mena):
    print(f"{i + 1}. {meno}")

Užitočné metódy zoznamu

cisla = [3, 1, 4, 1, 5, 9, 2, 6]

print(sorted(cisla))      # [1, 1, 2, 3, 4, 5, 6, 9] — nový zoradený zoznam
cisla.sort()              # zoradi pôvodný zoznam
cisla.reverse()           # otočí poradie
print(cisla.count(1))     # 2 — počet výskytov hodnoty 1
print(cisla.index(4))     # pozícia prvého výskytu 4
print(4 in cisla)         # True — je 4 v zozname?
Tip

sorted(zoznam) vráti nový zoradený zoznam a originál nezmení. zoznam.sort() zoradí pôvodný zoznam na mieste a nič nevracia. Vyber podľa toho, čo potrebuješ.

Slicing zoznamu

Rovnako ako u reťazcov, môžeš vystrihávať časti zoznamu:

cisla = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(cisla[2:5])    # [2, 3, 4]
print(cisla[:4])     # [0, 1, 2, 3]
print(cisla[7:])     # [7, 8, 9]
print(cisla[::2])    # [0, 2, 4, 6, 8] — každý druhý
print(cisla[::-1])   # [9, 8, 7, ..., 0] — obrátený

Dvojrozmerné zoznamy

Zoznam zoznamov reprezentuje tabuľku alebo mriežku:

sach_tabl = [
    ["V", "J", "S", "D", "K", "S", "J", "V"],
    ["P", "P", "P", "P", "P", "P", "P", "P"],
    # ...
]
print(sach_tabl[0][4])   # "K" — prvý riadok, piaty stĺpec (kráľ)
Upozornenie

Keď kopíruješ zoznam pomocou b = a, oba názvy ukazujú na ten istý zoznam! Zmena cez b zmení aj a. Na vytvorenie skutočnej kópie použi b = a.copy() alebo b = a[:].

Cvičné príklady

Čo vypíše tento kód? zoznam = [10, 20, 30, 40, 50]; zoznam.append(60); print(zoznam[2]); print(len(zoznam))

Zobraziť odpoveď
Vypíše 30 (prvok na indexe 2) a potom 6 (zoznam má po append 6 prvkov: [10, 20, 30, 40, 50, 60]).

Ako zistíš súčet všetkých čísel v zozname cisla = [5, 10, 15, 20] bez použitia vstavanej funkcie sum()?

Zobraziť odpoveď
sucet = 0; for c in cisla: sucet += c; print(sucet) — alebo sucet = 0; for i in range(len(cisla)): sucet += cisla[i]. Výsledok bude 50.