K přidání prvku do seznamu (pole) typu seznam v jazyce Python nebo ke spojení jiného seznamu slouží metody append(), extend() a insert(). K zadání pozice a jejímu přiřazení můžete použít také operátor + nebo slice.
Zde jsou uvedeny následující informace.
- Přidání prvků na konec:
append()
- Sloučení dalšího seznamu nebo trojice na konci (konkatenace):
extend()
,+
operátor - Přidání (vložení) prvku na zadanou pozici.:
insert()
- Přidat (vložit) další seznam nebo tuple na zadanou pozici:plátek
Přidání prvků na konec: append()
Pomocí metody append() seznamu můžete přidat prvky na konec (poslední). Pokud je chcete přidat na jinou pozici než na konec, například na začátek, použijte metodu insert(), jak je popsáno níže.
l = list(range(3))
print(l)
# [0, 1, 2]
l.append(100)
print(l)
# [0, 1, 2, 100]
l.append('new')
print(l)
# [0, 1, 2, 100, 'new']
Seznamy se také přidávají jako jeden prvek. Nejsou kombinovány.
l.append([3, 4, 5])
print(l)
# [0, 1, 2, 100, 'new', [3, 4, 5]]
Sloučení dalšího seznamu nebo trojice na konci (konkatenace): extend(), +operátor
Pomocí metody extend() můžete na konec seznamu (konec) připojit další seznam nebo tuple. Všechny prvky budou připojeny na konec původního seznamu.
l = list(range(3))
print(l)
# [0, 1, 2]
l.extend([100, 101, 102])
print(l)
# [0, 1, 2, 100, 101, 102]
l.extend((-1, -2, -3))
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3]
Všimněte si, že každý znak (prvek) je do řetězce přidáván po jednom znaku.
l.extend('new')
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w']
Místo metody extend() je také možné spojovat pomocí operátoru +.
+ se vrátí nový seznam.+=
To vám také umožní přidat ji do stávajícího seznamu.
l2 = l + [5, 6, 7]
print(l2)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]
l += [5, 6, 7]
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]
Přidání (vložení) prvku na zadanou pozici.: insert()
Metoda insert() umí přidat (vložit) prvek na zadanou pozici.
První argument určuje pozici a druhý argument určuje prvek, který má být vložen. První (počáteční) pozice je 0; pro záporné hodnoty je -1 poslední (konečná) pozice.
l = list(range(3))
print(l)
# [0, 1, 2]
l.insert(0, 100)
print(l)
# [100, 0, 1, 2]
l.insert(-1, 200)
print(l)
# [100, 0, 1, 200, 2]
Stejně jako u funkce append() je seznam přidán jako jediný prvek. Nebude sloučen.
l.insert(0, [-1, -2, -3])
print(l)
# [[-1, -2, -3], 100, 0, 1, 200, 2]
Všimněte si, že funkce insert() není efektivní operací, protože vyžaduje následující náklady. Výpočetní složitost různých operací se seznamy najdete na následující stránce na oficiální wiki.O(n)
O(1)
Typ deque je k dispozici v modulu kolekcí standardní knihovny jako typ pro přidávání prvků na vrchol za tuto cenu. Pokud například chcete s daty zacházet jako s frontou (FIFO), je efektivnější použít deque.
Přidat (vložit) další seznam nebo tuple na zadanou pozici: plátek
Pokud zadáte rozsah slice a přiřadíte další seznam nebo tuple, budou přidány (vloženy) všechny prvky.
l = list(range(3))
print(l)
# [0, 1, 2]
l[1:1] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 1, 2]
Původní prvek můžete také nahradit. Nahrazeny budou všechny prvky v zadaném rozsahu.
l = list(range(3))
print(l)
# [0, 1, 2]
l[1:2] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 2]