W3docs

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

MethodeFügt hinzuPositionÄndert in-place?
list.append(x)ein ElementEndeja
list.extend(iterable)alle Elemente des IterablesEndeja
list.insert(i, x)ein ElementIndex ija
list + otheralle Elemente von otherEndenein (gibt neue Liste zurück)
list += otheralle Elemente von otherEndeja
list[i:i] = itemsmehrere ElementeIndex ija

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.

python— editable, runs on the server

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 4

Um 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:

python— editable, runs on the server

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:

python— editable, runs on the server

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]  — unchanged

Verwenden 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

Übungen

Übung
Welche der folgenden Methoden fügen Elemente zu einer Python-Liste hinzu?
Welche der folgenden Methoden fügen Elemente zu einer Python-Liste hinzu?
Was this page helpful?