Python-Listen: Elemente zu einer Liste hinzufügen
Alle Methoden zum Hinzufügen von Elementen zu einer Python-Liste: append, extend, insert, der +-Operator und Slice-Zuweisung — mit Beispielen und Erklärungen.
Python-Listen sind veränderliche Sequenzen, das heißt, Sie können Elemente nach der Erstellung der Liste hinzufügen, entfernen und ändern. Dieses Kapitel behandelt alle Methoden und Operatoren, die Python zum Einfügen neuer Elemente in eine Liste bietet, erklärt, wann welche Methode eingesetzt werden sollte, und zeigt die häufigsten Fallstricke auf.
Methoden und Operatoren im Überblick
| Methode | Fügt hinzu | Position | Ändert in-place? |
|---|---|---|---|
list.append(x) | ein Element | Ende | ja |
list.extend(iterable) | alle Elemente des Iterables | Ende | ja |
list.insert(i, x) | ein Element | Index i | ja |
list + other | alle Elemente von other | Ende | nein (gibt neue Liste zurück) |
list += other | alle Elemente von other | Ende | ja |
list[i:i] = items | mehrere Elemente | Index i | ja |
append() verwenden
append() fügt ein einzelnes Element am Ende einer Liste hinzu. Die Liste wird in-place verändert, und die Methode gibt immer None zurück.
append() akzeptiert jedes Python-Objekt — Strings, Integer, Booleans und sogar andere Listen:
nums = [1, 2, 3]
nums.append(4)
print(nums) # [1, 2, 3, 4]Fallstrick: Eine Liste anhängen erzeugt eine verschachtelte Liste
Wenn Sie eine Liste an append() übergeben, behandelt Python diese als einzelnes Element und erstellt eine verschachtelte Liste — die beiden Listen werden nicht zusammengeführt:
fruits = ['apple', 'banana']
fruits.append(['grape', 'kiwi'])
print(fruits) # ['apple', 'banana', ['grape', 'kiwi']]
print(len(fruits)) # 3, not 4Um zwei Listen zusammenzuführen, verwenden Sie stattdessen extend() oder den +-Operator (siehe unten).
extend() verwenden
extend() iteriert über ein Iterable — eine Liste, ein Tupel, ein Set oder eine andere Sequenz — und hängt jedes seiner Elemente ans Ende der Liste an:
append() vs. extend() — Vergleich
a = [1, 2, 3]
a.extend([4, 5])
print(a) # [1, 2, 3, 4, 5]
b = [1, 2, 3]
b.append([4, 5])
print(b) # [1, 2, 3, [4, 5]] ← nested!Fallstrick: extend() mit einem String
Strings sind iterierbar, daher fügt extend() jedes Zeichen als separates Element hinzu:
letters = ['a', 'b']
letters.extend('cd')
print(letters) # ['a', 'b', 'c', 'd']Wenn Sie den gesamten String als ein Element hinzufügen möchten, verwenden Sie stattdessen append().
insert() verwenden
insert(i, x) fügt das Element x an Position i ein und verschiebt alle vorhandenen Elemente ab diesem Index um eine Stelle nach rechts:
Am Anfang einer Liste einfügen (Prepend) ist ein häufiger Anwendungsfall:
fruits = ['banana', 'orange']
fruits.insert(0, 'apple')
print(fruits) # ['apple', 'banana', 'orange']Fallstrick: Index größer als die Listenlänge
Wenn der übergebene Index größer als die aktuelle Länge der Liste ist, wirft Python keinen Fehler — das Element wird einfach am Ende angefügt:
fruits = ['apple', 'banana']
fruits.insert(100, 'orange')
print(fruits) # ['apple', 'banana', 'orange']Negative Indizes funktionieren ebenfalls: insert(-1, x) fügt das Element direkt vor dem letzten Element ein.
Den +-Operator verwenden
Der +-Operator verkettet zwei Listen und gibt eine neue Liste zurück. Keine der ursprünglichen Listen wird verändert:
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print(c) # [1, 2, 3, 4, 5, 6]
print(a) # [1, 2, 3] — unchangedVerwenden Sie +, wenn die Originallisten unverändert bleiben sollen oder wenn Sie einen Listenausdruck erstellen, anstatt eine Liste zu mutieren.
+= (erweiterte Zuweisung) verwenden
Der +=-Operator ist eine Kurzform für extend() — er fügt das rechtsseitige Iterable in-place in die bestehende Liste ein:
a = [1, 2, 3]
a += [7, 8]
print(a) # [1, 2, 3, 7, 8]Im Gegensatz zu + erstellt += keine neue Liste — es aktualisiert a in-place, was bei großen Listen speichereffizienter ist.
Mehrere Elemente an einer bestimmten Position einfügen (Slice-Zuweisung)
Um einen Block von Elementen in der Mitte einer Liste einzufügen, ist die Slice-Zuweisung der direkteste Ansatz:
nums = [1, 2, 5, 6]
nums[2:2] = [3, 4] # insert [3, 4] starting at index 2
print(nums) # [1, 2, 3, 4, 5, 6]Die Syntax list[i:i] = items öffnet ein Fenster der Breite null an Index i und füllt es mit den Elementen aus items. Vorhandene Elemente werden nicht entfernt.
Die richtige Methode wählen
- Ein Element am Ende hinzufügen:
append()verwenden. Es ist die einfachste und schnellste Option für das Einfügen einzelner Elemente. - Eine andere Liste zusammenführen:
extend()oder+=verwenden. Beide sind gleichwertig;+=ist in Schleifen etwas idiomatischer. - Ein Element an einer bestimmten Position einfügen:
insert()verwenden. - Die ursprüngliche Liste unverändert lassen: den
+-Operator verwenden und das Ergebnis einer neuen Variable zuweisen. - Mehrere Elemente in der Mitte einfügen: Slice-Zuweisung verwenden.
Verwandte Kapitel
- Python-Listen — Listen erstellen, indizieren und Listeneigenschaften
- Auf Listenelemente zugreifen — Elemente per Index und Slice lesen
- Listenelemente ändern — vorhandene Elemente in-place aktualisieren
- Listenelemente entfernen — Elemente mit
remove(),pop()unddellöschen - Listenmethoden — vollständige Referenz aller integrierten Listenmethoden