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]