Přidávání prvků do seznamu (pole) v jazyce Python: append(), extend(), insert()

Podnikání

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]