Seznam
Seznam je speciální datová struktura, která nám umožňuje ukládat několik hodnot v jedné proměnné. Vytvoříme si prázdný seznam E a seznam s několika čísly U.
E = []
U = [1, 4, 2, 100, 1]
Kolik je v seznamu věcí můžeme zjistit pomocí funkce len().
print(len(E))
print(len(U))
Tento program by vypsal:
0
5
protože v seznamu E je nula hodnot a v seznamu U je jich 5. Díky indexování se mohu koukat na různé místa v seznamu. Protože jsme programátoři, počítáme věci od nuly, ne od jedničky. Stejně tak to platí i u seznamů; prvku na začátku seznamu říkáme nultý. Můžu zjistit jeho hodnotu pomocí následujícího zápisu:
print(U[0])
Tento program by vypsal číslo 1, protože je na začátku seznamu. Pokud bych zkusil U[3], vypíše program 100. Pozor na to, že se nemohu dotazovat na prvky, které v seznamu nejsou.
print(U[5])
Tento program by skončil s chybou, protože na šestém místě (nezapomínejte, počítáme od nuly) nic není. Stejně tak by například skončil s E[0].
Do seznamů můžu hodnoty přidávat pomocí příkazu append().
E.append(10)
E.append(20)
print(E[1])
V tomto bodě už není seznam E prázdný a program by vypsal 20. V pythonu není problém míchat v seznamu text i čísla. Například následující kus kódu je úplně v pořádku.
smichany_seznam = ["ahoj", 20, 555, ":)", "text text text"]
Pokud chci vytvořit jednoduchý seznam, který obsahuje posloupnost čísel, můžu použít funkci range()
posloupnost = list(range(20))
V seznamu posloupnost budou uložená čísla od 0 do 19 (tedy 20 čísel). Všimneme si funkce list(); funkce range() totiž nevrací přímo seznam (ale něco, čemu se říká generátor, to však není důležité), takže je potřeba ho na seznam převést. Funkce list je obdobná funkcím str() a int().
Seznamy jdou skvěle využít se smyčkami.
cisla = [10, 20, 30, 40, 50, 0]
i = 0
while i < len(cisla):
print(cisla[i])
i = i + 1
Tento program vypíše za sebou všechny čísla v seznamu cisla. Jde to však ještě lépe; k tomu nám poslouží smyčka for.