Úvod do seznamů v Pythonu :
Seznamy v Pythonu jsou interně reprezentovány jako pole. Použitá myšlenka je podobná implementaci vektorů v C++ nebo ArrayList v Javě. Nákladné operace jsou vkládání a mazání položek poblíž začátku (protože vše se musí přesunout). Vkládání na konci je také nákladné, pokud se předalokovaný prostor zaplní.
Seznam můžeme v Pythonu vytvořit podle následujícího obrázku.
Příklad:
list1
=
K každému prvku seznamu můžeme v pythonu přistupovat podle přiřazeného indexu. V pythonu je počáteční index posloupnosti seznamu 0 a koncový index je (pokud je v seznamu N prvků) N-1.
Také, jak je uvedeno ve výše uvedeném poli, mají seznamy také záporný index počínaje -N (pokud je v seznamu N prvků) až po -1.
Pohled na prvky seznamu v pythonu :
K jednotlivým prvkům seznamu můžeme přistupovat prostřednictvím jejich indexů, jak je provedeno v následujícím úseku kódu.
list1
=
print
(list1)
print
(list1)
print
(list1)
Přiřazení a zpřístupnění dat:
Pro vytvoření seznamu musíme určit prvky uvnitř hranatých závorek “ a pak mu dát jméno. Kdykoli chceme přistupovat k prvkům seznamu, pak použijeme tento název seznamu a index prvku, který chceme zobrazit.
Každému prvku v seznamu je přiřazen index při kladném indexování máme index od 0 do konce seznamu a při záporném indexování máme index od -N(pokud je prvků N) do -1.
Jak je uvedeno ve výše uvedených příkladech, práce s přístupem k prvkům je ruční. K prvkům můžeme přistupovat nebo je přiřazovat také pomocí cyklů.
list1
=
for
i
in
range
(
0
,
11
):
list1.append(i)
for
i
in
range
(
0
,
11
):
print
(list1)
Aktualizace seznamu:
Můžeme aktualizovat již přiřazené prvky seznamu a také můžeme do seznamu přidávat po jednom prvku.Dokonce můžeme seznam rozšířit přidáním dalšího prvku k aktuálnímu seznamu.
Výše uvedený úkol lze provést následujícím způsobem.
list1
=
list1
=
5
print
(list1)
list1.append(
6
)
print
(list1)
list1.extend()
print
(list1)
Pozn: append() a extend() jsou v pythonu zabudované metody pro seznamy.
Mazání prvků seznamu :
Prvky v seznamech můžeme mazat pomocí funkce del. Při ní je třeba zadat pozici prvku, která je indexem prvku, a tento prvek bude ze seznamu odstraněn a index bude aktualizován.
Na výše uvedeném obrázku byl odstraněn prvek 3 v indexu 2 a poté byl aktualizován index.
list1
=
print
(list1)
del
list1
print
(list1)
Časová náročnost operací
Operace |
Průměrný případ |
Amortizovaný nejhorší případ |
|
Kopírování | O(n) | O(n) | |
Připojení | O(1) | O(1) | |
Pop poslední | O(1) | O(1) | |
Pop meziprodukt |
O(k) |
O(k) |
|
Vložit |
O(n) |
O(n) |
|
Získat položku | O(1) | O(1) | |
Nastavit položku | O(1) | O(1) | |
Smazat položku | O(n) | O(n) | |
Iterace | O(n) | O(n) | |
Získání plátku | O(k) | O(k) | |
Del Slice | O(n) | O(n) | |
Set Slice | O(k+n) | O(k+n) | |
Rozšířit | O(k) | O(k) | |
Sortovat | O(n log n) | O(n log n) | |
Násobit | O(nk) | O(nk) | O(nk) |
x v s | O(n) | O(n) | |
min(s), max(s) | O(n) | O(n) | |
Get Length |
O(1) |
O(1) |
Napsat komentář