Seznam (list) je sekvence, které používají celá čísla jako indexy pro přístup jednotlivým položkám např, při procházení, vyhledávání apod.
Nevidíme je ale jsou implicitně nastaveny už při definici.
Seznamy jsou podobné slovníkům
Nový seznam vytvoříme (přiřadíme do proměnné) pomocí hranatých závorek, položky mohou být libovolného typu a oddělujeme je čárkou. Seznamy, řetězce a jiné entity, které se chovají jako uspořádané řady, nazýváme sekvence.
Pro přehlednost zvýrazním jednotlivé položky:
>>>seznam = ["ahoj", 8, [1, 16], 42.5] #V třetí sekvenci vidíme složenou entitu.
Přístup k položkám
Syntaxe je opět velmi jednoduchá, stačí napsat dentifikátor a za něj hranaté závorky do nichž vložíme index položky. Nezapomeňte však, že indexace začína od 0! 99 % programovacích jazyků indexuje pole od 0. Toto prosím nezapomínejte (např. při procházení pomocí cyklu for).
>>> print seznam[0] #která pak to je položka?
ahoj
- Pokud bychom chtěli "printovat" položku která neexistuje tak to samozřejmě vypíše chybu.
Jednotlivé položky můžeme tisknout i obráceně a to zadání záporné hodnoty. U -1 bude odkazovat na první položku z opačného směru, čili zprava.
- Pokud by jste chtěli použít print seznam[-0], vytiskne první položku zleva.!
>>>print seznam[-1]
42.5
Procházení seznamem
Pro procházení seznamem, jak jsem již zmínil, je vhodné použít cyklus for. Nyní si předvedeme jak by takový cyklus vypadal na jednoduchém příkladu.
>>> for i in ["ahoj", 8, [1, 16], 42.5]: #nezapomínat na dvojtečku!
print i,
ahoj 8 [1, 16] 42.5
Lze také využít cyklus while:
i = 0
while i < len(horsemen):
print horsemen[i]
i = i + 1
Operace se seznamy
Operátor + zřetězí seznamy a pomocí operátoru * můžeme násobit záznamy:
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = a + b
>>> print c
[1, 2, 3, 4, 5, 6] >>> [0] * 4
[0, 0, 0, 0]
>>> [1, 2, 3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
Úseky
Pomáhají vybírat prvky v nějakém pořadí:
>>> list = ['a', 'b', 'c', 'd', 'e', 'f']
>>> list[1:3] #vybere 2. a zastaví se před 4.
['b', 'c']
>>> list[:4] #vybírá první 4
['a', 'b', 'c', 'd']
>>> list[3:] #poslední 4
['d', 'e', 'f']
>>> list[:] #netřeba komentovat
['a', 'b', 'c', 'd', 'e', 'f']
Pokračování příště....