Kubíkovo

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.