Elemek hozzáadása egy listához (tömbhöz) Pythonban: append(), extend(), insert()

Üzleti

A Pythonban egy list típusú listához (tömbhöz) elemet adhatunk hozzá, vagy egy másik listát kombinálhatunk, ha a listamódszereket append(), extend() és insert() használjuk. A + operátor vagy a slice segítségével is megadhatunk egy pozíciót és hozzárendelhetjük azt.

A következő információk itt találhatók.

  • Elemek hozzáadása a végén:append()
  • Egy másik lista vagy tuple összevonása a végére (konkatenáció): extend(),+üzemeltető
  • Egy elem hozzáadása (beszúrása) a megadott pozícióba.:insert()
  • Egy másik lista vagy tuple hozzáadása (beillesztése) a megadott pozícióhoz:szelet

Elemek hozzáadása a végén: append()

A lista append() metódusával a lista végére (utolsó) elemeket adhatunk hozzá. Ha a végétől eltérő pozícióba, például a tetejére szeretnénk hozzáadni, használjuk az insert() metódust az alábbiakban leírtak szerint.

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

A listák egyetlen elemként is hozzáadódnak. Nem kombinálódnak.

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

Egy másik lista vagy tuple összevonása a végére (konkatenáció): extend(), +üzemeltető

A listamódszer extend() segítségével a listák végére (a végére) egy másik listát vagy tuple-t kapcsolhatunk. Minden elem az eredeti lista végéhez lesz csatolva.

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]

Vegyük észre, hogy minden karakter (elem) karakterenként kerül hozzá a karakterlánchoz.

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

Az extend() metódus helyett a + operátorral is lehetséges az összekapcsolás.

+ operátorral egy új listát kapunk vissza.+=Ez azt is lehetővé teszi, hogy hozzáadja egy meglévő listához.

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]

Egy elem hozzáadása (beszúrása) a megadott pozícióba.: insert()

A listamódszer insert() egy elemet tud hozzáadni (beszúrni) egy megadott pozícióba.

Az első argumentum a pozíciót, a második pedig a beillesztendő elemet adja meg. Az első (kezdeti) pozíció 0; negatív értékek esetén -1 az utolsó (végső) pozíció.

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]

Az append() függvényhez hasonlóan a lista egyetlen elemként kerül hozzáadásra. Nem lesz összevonva.

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

Vegyük észre, hogy az insert() nem hatékony művelet, mivel a következő költségeket igényli. A különböző listaműveletek számítási komplexitását lásd a hivatalos wiki következő oldalán.
O(n)

O(1)
A deque típus a szabványos könyvtár collections moduljában olyan típus, amellyel ilyen költséggel lehet elemeket hozzáadni a tetejéhez. Ha például az adatokat sorbanállásként (FIFO) szeretnénk kezelni, hatékonyabb a deque használata.

Egy másik lista vagy tuple hozzáadása (beillesztése) a megadott pozícióhoz: szelet

Ha egy tartományt ad meg egy szelettel, és egy másik listát vagy tuple-t rendel hozzá, akkor az összes elem hozzáadásra (beillesztésre) kerül.

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

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

Az eredeti elemet is kicserélheti. A megadott tartományban lévő összes elemet kicseréli a rendszer.

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

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