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.
Ak zostaneme pri prirovnaní premennej ku krabici, tak zoznam si môžeš predstaviť ako riadok škatúľ vedľa seba. Každá má svoju hodnotu a svoju čí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é prvky oddeľujeme čiarkami.
mena = ["Anna", "Saša", "Veronika", "Miša", "Karolína"] cisla = [10, 20, 30, 40, 50] prazdny_zoznam = [] zmiesany_zoznam = [15, "Bratislava", 0.1]
Zoznam môže obsahovať prvky rôznych dátových typov, hoci v praxi zvykneme ukladať prvky rovnakého typu.
Prístup k prvkom – indexovanie
K jednotlivým prvkom zoznamu
pristupujeme pomocou indexu (poradového čísla) v hranatých zátvorkách. 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]) print(mena[1]) print(mena[2])
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, aby si nepristupoval k neexistujúcim prvkom.
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]) print(mena[-2])
Dĺžka zoznamu – funkcia len()
Funkcia len() nám vráti
počet prvkov v zozname, čo je jeho dĺžka/veľkosť. Je to funkcia s parametrom a tým je zoznam. Využívame ju napríklad vtedy, keď chceme vypísať
posledný prvok bez použitia záporného indexu. Získame dĺžku zoznamu cez len() a od tejto hodnoty odčítame 1, keďže sa indexovanie začína od 0.
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, napíšeme meno zoznamu a v hranatých zátvorkách index prvku, ktorý chceme zmeniť, za tým napíšeme = (rovná sa) a za ním hodnotu, ktorú chceme nastaviť prvku.
mena = ["Anna", "Saša", "Veronika"] mena[1] = "Vanessa" print(mena[1])
Indexovanie v textových reťazcoch
Textové reťazce fungujú pri indexovaní podobne ako zoznamy. Vieš pristupovať k jednotlivým znakom pomocou indexu.
meno = "Anna" print(meno[0]) print(meno[-1])
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()
Funkcia remove() vymaže
prvý výskyt zadanej hodnoty zo zoznamu. Ak hodnota v zozname neexistuje, Python
vyhodí chybu.
mena = ["Anna", "Saša", "Miša"]
mena.remove("Saša")
print(mena)
# ["Anna", "Miša"]
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.
mena_skupiny s týmito str hodnotami: Jack, Evan, Caleb, Tyler, Mark.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.
Cvičenie rieš v zadanom poradí.
len()
farby = ["červená", "modrá", "zelená"] print(farby[-1])
mena?
mena.add("Jano")
mena.insert("Jano")
mena.append("Jano")
mena += "Jano
len() vráti index posledného prvku.
len() vráti počet prvkov, nie index posledného. Index posledného prvku je vždy len(zoznam) - 1.
cisla = [5, 10, 15, 20] print(len(cisla))
zoznam.append()
zoznam.remove()
len()
menana konci programu?
mena = ["Anna", "Saša", "Veronika"] mena[1] = "Tamara"
mena = ["Anna", "Saša", "Veronika"]
mena.append("Karolína")
print(mena[-1])
mena[-1] vypíše "Karolína", keďže je to posledný pridaný prvok.