Lekcie
Zoznamy - hromadné ukladanie dát
Čo ak máš nákupný zoznam alebo zoznam mien? Naučíš sa ukladať viacero hodnôt do jednej premennej.
Čo je to zoznam?
Doteraz sme pracovali s premennými, do ktorých sme vkladali vždy jednu hodnotu - číslo, text alebo logickú hodnotu. Čo ale keď chceme uložiť viacero hodnôt naraz? Na to slúži zoznam.
Zoznam si môžeš predstaviť ako riadok škatúľ vedľa seba. Každá má svoju hodnotu a každá má číslovanú pozíciu, vďaka ktorej vieš k nej pristúpiť. Táto pozícia sa nazýva index.
Vytvorenie zoznamu
Zoznam vytvoríme pomocou hranatých zátvoriek [], pričom jednotlivé hodnoty (resp. prvky) oddeľujeme čiarkami.
mena = ["Anna", "Saša", "Veronika", "Miša", "Karolína"] cisla = [10, 20, 30, 40, 50] prazdny_zoznam = []
Zoznam môže obsahovať hodnoty rôznych dátových typov, hoci v praxi zvykneme ukladať hodnoty rovnakého typu.
Prístup k prvkom – indexovanie
K jednotlivým prvkom zoznamu pristupujeme pomocou indexu v hranatých zátvorkách. Dôležité: indexovanie začína od 0, nie od 1. Prístup vykonáme týmto syntaxom: meno_zoznamu[index]. Ukážka je nižšie.
mena = ["Anna", "Saša", "Veronika"] print(mena[0]) # Anna print(mena[1]) # Saša print(mena[2]) # Veronika
Ak použiješ index, ktorý v zozname neexistuje (napr. mena[5] pri 3 prvkoch), Python vyhodí IndexError. Vždy si skontroluj, koľko prvkov zoznam obsahuje.
Záporné indexy
Python podporuje aj záporné indexy. -1 označuje posledný prvok, -2 predposledný, atď. Toto je užitočné, keď nevieš, aký dlhý je tvoj zoznam.
mena = ["Anna", "Saša", "Veronika"] print(mena[-1]) # Veronika print(mena[-2]) # Saša
Dĺžka zoznamu – funkcia len()
Funkcia len() nám vráti počet prvkov v zozname. Využívame ju napríklad vtedy, keď chceme vypísať posledný prvok bez použitia záporného indexu. Je to funkcia s parametrom a tým je nejaký zoznam.
mena = ["Anna", "Saša", "Veronika", "Miša"] print(len(mena)) # 4 print(mena[len(mena) - 1]) # Miša (posledný prvok)
Zmena hodnoty prvku
Na rozdiel od textového reťazca, prvky zoznamu vieme meniť pomocou indexu. Syntax je podobný prístupu prvku zoznamu, avšak pridáme znak rovná sa a za ním novú hodnotu prvku.
mena = ["Anna", "Saša", "Veronika"] mena[1] = "Vanessa" print(mena[1]) # Vanessa
Indexovanie v textových reťazcoch
- Textové reťazce fungujú pri indexovaní podobne ako zoznamy.
- Vieš pristupovať k jednotlivým znakom pomocou indexu. Napríklad meno = "Anna", meno[0] vráti "A".
- Na rozdiel od zoznamu však znaky v textovom reťazci nemôžeš meniť cez index.
Pridávanie prvkov: metóda append()
Ak chceme do zoznamu pridať nový prvok, použijeme metódu append(). Táto funkcia pridá nový prvok na koniec zoznamu.
mena = ["Anna", "Saša"]
mena.append("Karolína")
print(mena)
# ["Anna", "Saša", "Karolína"]
Mazanie prvkov: metóda remove()
Metóda remove() vymaže prvý výskyt zadanej hodnoty zo zoznamu. Ak hodnota v zozname neexistuje, Python vyhodí chybu.
mena = ["Anna", "Saša", "Veronika"]
mena.remove("Saša")
print(mena)
# ["Anna", "Veronika"]
Prehľad operácií so zoznamom
| Operácia | Príklad |
|---|---|
| Vytvorenie | cisla = [-5, 8, 14, 2] |
| Prístup cez index | mena[0] # Anna |
| Prístup cez záporný index | mena[-2] # predposledný prvok |
| Dĺžka zoznamu | len(zoznam) |
| Zmena prvku cez index | cisla[4] = 0 |
| Pridanie prvku (na koniec) | mena.append("Karolína") |
| Vymazanie prvku (prvý výskyt) | mena.remove("Saša") |
Zopakuj si!
- Zoznam je premenná, do ktorej vieme uložiť viacero hodnôt naraz.
- Prvky zoznamu číslujeme od 0 - tomu hovoríme indexovanie.
- Záporné indexy (-1, -2, ...) nám umožňujú pristupovať k prvkom od konca.
- len(zoznam) je funkcia, ktorá nám vráti počet prvkov v zozname.
- zoznam.append() pridá prvok na koniec zoznamu.
- zoznam.remove() vymaže prvý výskyt v zozname.
- Prvky zoznamu vieme meniť cez index. V textovom reťazci toto možné nie je.
2. V prvom riadku vypíš prvé meno zo zoznamu.
3. V druhom riadku vypíš tretie meno.
4. Zo zoznamu vymaž meno Evan.
5. Vypíš znovu tretie meno.
6. Nakoniec vypíš posledné meno zo zoznamu.
farby = ["červená", "modrá", "zelená"] print(farby[-1])
cisla = [5, 10, 15, 20] print(len(cisla))
mena = ["Anna", "Saša", "Veronika"] mena[1] = "Tamara"