V predošlých učebných materiáloch o listoch ste sa dozvedeli o ich indexovaní.
Listy však možno indexovať aj záporne, t.j. od konca listu. V prípade kladného indexovania, začíname indexovať od nuly, avšak pri zápornom indexovaní je posledný prvok indexovaný hodnotou -1, predposledný je na indexe -2, a tak ďalej.
Majme napríklad nasledujúce pole:
names = ["Emma", "Peter", "Anna", "Richard"]
Posledný prvok môžeme indexovať dvoma spôsobmi a to:
print(names[3])
print(names[-1])
V prípade, že chceme vybrať nultý prvok, tak to môžeme urobiť tiež dvomi spôsobmi:
print(names[0])
print(names[-4])
TODO: obrázok s indexami aj odzadu
V prípade, že chceme z listu vybrať iba určitú časť prvkov, používame rezy (anglicky slices
).
Majme nasledovný list:
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Vybrať všetky prvky listu možno nasledovne:
print(list[:])
Pokiaľ by sme potrebovali vybrať len určitý podinterval listu, píšeme príkaz v tvare list[n:m]
, kde $n$ znázorňuje index prvého vyberaného prvku intervalu a $m$ prvý prvok nepatriaci do zvoleného podintevalu.
Napríklad:
print(list[:3]) # výber prvých troch prvkov
print(list[7:]) # výber posledných troch prvkov
print(list[2:7]) # výstup bude [3, 4, 5, 6, 7]
V prípade funkcie range
, kde máme možnosť nastaviť začiatok, koniec intervalu a a krok.
Inak tomu nie je ani pri rezoch, tu tiež máme možnosť nastaviť krok:
list[2:7:3] # vystup bude [3,6]
Niekedy môže nastať situácia, že potrebujeme zistiť, či sa konkrétny prvok nachádza v liste, s ktorým práve pracujeme.
Namiesto použitia for cyklu a prechádzania celého listu, stačí použiť podmienku.
Predstavme si, že máme nákupný zoznam:
shopping_list = ["apples", "pasta", "milk", "chocolate", "carrot"]
Ak chceme zistiť či sa už v zozname nachádza čokoláda, použijeme tento príkaz:
if "chocolate" in shopping_list:
print("Item is already on the list.")