Python tutoriál 8. díl

Procházení seznamu cykly

Smyčka for

Pomocí cyklu for můžete projít položky seznamu jednu po druhé:

Pomocí funkcí range() a len() můžete položky seznamu procházet podle jejich indexu:

Iterovatelný prvek vytvořený ve výše uvedeném příkladu je [0, 1, 2].

Smyčka while

Pomocí funkce len() určete délku seznamu, poté začněte na 0 a procházejte se mezi položkami seznamu podle jejich indexů. Nezapomeňte po každé iteraci zvýšit index o jedna:

Iterace pomocí seznamových zkratek

Seznamové zkratky (list comprehension) nabízí nejkratší syntaxi pro iteraci přes seznamy:

Seznamové zkratky (list comprehension) nabízí kratší syntaxi, když chcete vytvořit nový seznam na základě hodnot existujícího seznamu.

Příklad: Ze seznamu zvířat chcete nový obsahující pouze zvířata s písmenem ‚k‘ v názvu. Bez seznamových zkratek byste museli napsat příkaz for s podmínkou uvnitř:

Pomocí seznamové zkratky to můžete udělat jedním řádkem kódu:

Syntaxe

Vrácená hodnota je nový seznam, přičemž původní seznam zůstane nezměněn.

Podmínka funguje jako filtr, který přijímá položky pouze, když je vyhodnocena kladně.

Ukážeme si, co dělat, když se chcete zbavit nějaké krávy:

Podmínka if zvire != "kráva" vrátí True pro všechny prvky jiné než "kráva". Nový seznam bude obsahovat všechna zvířata kromě nešťastné dojnice.

Podmínka je volitelná a lze ji vynechat:

Iterovatelný objekt může být instancí jakékoli iterovatelného datového typu, jako je seznam, n-tice, množina, atd.

Funkci range() můžete použít k vytvoření iterovatelného objektu:

Výraz je aktuální položkou v iteraci, ale je to také mezivýsledek, se kterým můžete manipulovat, než skončí jako položka v novém seznamu:

Výsledek můžete nastavit podle libosti:

Výraz může také obsahovat podmínku jako způsob manipulace s výsledkem:

Řazení seznamů

Alfanumericky

Seznam má metodu sort(), která ve výchozím nastavení seřadí seznam alfanumericky:

Řazení si můžete přizpůsobit vlastní funkci pomocí argumentu key.

Funkce vrátí číslo, které bude použito k seřazení seznamu (nejnižší číslo jako první):

Třídění bez ohledu na velikost písmen

Ve výchozím nastavení metoda sort() řadí velká písmena před malá:

Naštěstí můžeme použít vestavěné funkce jako klíčové při třídění seznamu.

Pokud tedy chcete třídicí funkci bez ohledu na velikost písmen, použijte jako klíčovou funkci str.lower nebo str.casefold:

Metoda reverse() obrátí aktuální pořadí prvků bez ohledu na abecedu:

Kopírování

Seznam nelze zkopírovat jednoduše zadáním seznam2 = seznam1. Nový seznam2 by byl pouze odkazem na seznam1 a změny provedené v seznamu1 se automaticky provedou také v seznamu2.

Můžete použít metody copy(), list() a : (slice) operátor:

Spojení seznamů

Existuje několik způsobů, jak spojit nebo zřetězit dva nebo více seznamů.

Jedním z nejjednodušších je použití + operátoru:

Další způsob je přida všechny prvky jeden po druhém smyčkou:

Nebo použijte extend() metodu:

Rekapitulace metod seznamu

metodapopis
append()Přidá prvek na konec seznamu.
clear()Odebere všechny prvky ze seznamu.
copy()Vrátí kopii seznamu.
count()Vrátí počet prvků se zadanou hodnotou.
extend()Přidejte prvky seznamu (nebo libovolného iterovatelného objektu) na konec aktuálního seznamu.
index()Vrátí index prvního prvku se zadanou hodnotou.
insert()Přidá prvek na zadanou pozici.
pop()Odebere prvek na zadané pozici.
remove()Odebere položku se zadanou hodnotou.
reverse()Obrátí pořadí seznamu.
sort()Seřadí seznam.

Python tutoriál 9. díl