Dodajanje elementov na seznam (polje) v Pythonu: append(), extend(), insert()

Posel

Za dodajanje elementa seznamu (polju) tipa seznam v Pythonu ali za združevanje drugega seznama uporabite metode seznama append(), extend() in insert(). Uporabite lahko tudi operator + ali rezino, da določite položaj in ga dodelite.

Tu so na voljo naslednje informacije.

  • Dodajanje elementov na koncu:append()
  • na koncu združite drug seznam ali tuple (konkatenacija): extend(),+operater
  • Dodajanje (vstavljanje) elementa na določen položaj.:insert()
  • Dodajanje (vstavljanje) drugega seznama ali trojice na določeno mesto:rezina

Dodajanje elementov na koncu: append()

Z metodo append() seznama lahko dodate elemente na konec (zadnji). Če ga želite dodati na drugo mesto kot na konec, na primer na vrh, uporabite metodo insert(), kot je opisano spodaj.

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']

Seznami so dodani tudi kot en sam element. Ne združujejo se.

l.append([3, 4, 5])
print(l)
# [0, 1, 2, 100, 'new', [3, 4, 5]]

na koncu združite drug seznam ali tuple (konkatenacija): extend(), +operater

Z metodo extend() lahko na koncu seznama (na koncu) združite drug seznam ali tuple. Vsi elementi bodo dodani na konec prvotnega seznama.

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]

Upoštevajte, da je vsak znak (element) dodan nizu po en znak naenkrat.

l.extend('new')
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w']

Namesto metode extend() je mogoče združiti tudi z uporabo operatorja +.

+ se vrne nov seznam.+=To vam bo omogočilo tudi dodajanje na obstoječi seznam.

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]

Dodajanje (vstavljanje) elementa na določen položaj.: insert()

Metoda insert() lahko doda (vstavi) element na določen položaj.

Prvi argument določa položaj, drugi argument pa element, ki ga je treba vstaviti. Prvi (začetni) položaj je 0; za negativne vrednosti je -1 zadnji (končni) položaj.

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]

Tako kot pri append() se seznam doda kot en sam element. Seznam se ne združi.

l.insert(0, [-1, -2, -3])
print(l)
# [[-1, -2, -3], 100, 0, 1, 200, 2]

Upoštevajte, da funkcija insert() ni učinkovita operacija, saj zahteva naslednje stroške. Za računsko zahtevnost različnih operacij seznama glejte naslednjo stran na uradnem wikiju.
O(n)

O(1)
Tip deque je na voljo v modulu zbirke standardne knjižnice kot tip za dodajanje elementov na vrh po tej ceni. Če želite na primer podatke obravnavati kot čakalno vrsto (FIFO), je učinkovitejše uporabiti deque.

Dodajanje (vstavljanje) drugega seznama ali trojice na določeno mesto: rezina

Če določite območje z rezino in dodelite drug seznam ali tuple, se dodajo (vstavijo) vsi elementi.

l = list(range(3))
print(l)
# [0, 1, 2]

l[1:1] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 1, 2]

Izvirni element lahko tudi zamenjate. Zamenjani bodo vsi elementi v določenem območju.

l = list(range(3))
print(l)
# [0, 1, 2]

l[1:2] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 2]