Práca s rozsahmi a iteráciou

JupyterLab
Rozsahy
Iterácia
Indexy
Autor

Jakub Šperka

Publikované

18. septembra 2025

🔁 Úvod

Pri opakovaní kódu často potrebujeme prechádzať číselné rozsahy alebo zoznamy s indexmi. Na to slúžia funkcie range() a enumerate().


🔢 range() – generovanie čísel

📌 Základný tvar:

Kód
for i in range(5):
    print(i)
0
1
2
3
4

range(n) vytvorí čísla od 0 do `n-1


🛠️ Vlastný začiatok a krok

Kód
for i in range(2, 10, 2):
    print(i)  # 2, 4, 6, 8
2
4
6
8
Kód
for i in range(10, 0, -1):
    print(i)  # 10, 9, ..., 1
10
9
8
7
6
5
4
3
2
1

range(a, b, k) – od a po b-1, po krokoch k


🔍 enumerate() – index + hodnota

Kód
ovocie = ["jablko", "banán", "kiwi"]
for index, hodnota in enumerate(ovocie):
    print(index, "→", hodnota)
0 → jablko
1 → banán
2 → kiwi

🔢 Voliteľný začiatok indexovania:

Kód
for index, hodnota in enumerate(ovocie, start=1):
    print(index, hodnota)
1 jablko
2 banán
3 kiwi

🤔 Kedy použiť enumerate()?

✅ Keď potrebujete index a hodnotu zároveň

Kód
zoznam = ['a', 'b', 'c']
for i, hodnota in enumerate(zoznam):
    print(i, hodnota)
0 a
1 b
2 c

✅ Keď chcete začať index od iného čísla

Kód
for i, meno in enumerate(['Anna', 'Ján', 'Eva'], start=1):
    print(f"{i}. {meno}")
1. Anna
2. Ján
3. Eva

✅ Zvýšenie čitateľnosti

Horšie:

Kód

zoznam = ['x', 'y', 'z']
for i in range(len(zoznam)):
    print(i, zoznam[i])
0 x
1 y
2 z

Lepšie:

Kód
for i, val in enumerate(zoznam):
    print(i, val)
0 x
1 y
2 z

⛔ Kedy enumerate() netreba ?

Kód
for meno in ["Anna", "Ján", "Eva"]:
    print(meno)
Anna
Ján
Eva

❗ Ak nepotrebujete index, iba hodnotu.


🧠 Zhrnutie

  • range(n) vytvorí čísla od 0 do n-1
  • range(a, b, k) – od a po b-1, po krokoch k
  • enumerate() dáva index aj hodnotu zo zoznamu
  • Použite enumerate(), ak potrebujete pracovať s pozíciou prvkov

🎞️ Videonávod