W3docs

Listen-Methoden

Alle 11 Python-Listen-Methoden im Überblick: append, extend, insert, remove, pop, index, count, sort, reverse, copy und clear – mit Beispielen.

Python-Listen sind veränderliche, geordnete Sequenzen. Da sie veränderlich sind, bietet der Listentyp elf eingebaute Methoden, mit denen Sie Elemente an Ort und Stelle hinzufügen, entfernen, suchen und neu anordnen können – ohne Importe. Diese Seite behandelt jede Methode mit ausführbaren Beispielen, häufigen Fallstricken und Hinweisen dazu, wann welche Methode zu bevorzugen ist.

Verwandte Kapitel: Python Lists · Sort Lists · List Comprehension · Copy Lists

Kurzübersicht

MethodeWas sie tutVerändert die Liste?Gibt zurück
append(x)Ein Element am Ende hinzufügenJaNone
extend(iterable)Alle Elemente eines Iterables am Ende hinzufügenJaNone
insert(i, x)Ein Element an Position i einfügenJaNone
remove(x)Erstes Vorkommen von x entfernenJaNone
pop([i])Element an Index i entfernen und zurückgeben (Standard: letztes)JaEntferntes Element
index(x[, start[, end]])Index des ersten Vorkommens von x zurückgebenNeinint
count(x)Vorkommen von x zählenNeinint
sort([key][, reverse])Elemente an Ort und Stelle sortierenJaNone
reverse()Elemente an Ort und Stelle umkehrenJaNone
copy()Eine flache Kopie zurückgebenNeinNeue Liste
clear()Alle Elemente entfernenJaNone

Elemente hinzufügen

append()

append(x) fügt ein einzelnes Element x am Ende der Liste hinzu. Es handelt sich um eine amortisierte O(1)-Operation und ist die idiomatische Methode, um eine Liste Element für Element aufzubauen.

python— editable, runs on the server

append() fügt das Argument immer als ein einziges Element hinzu, auch wenn dieses Argument selbst eine Liste ist:

fruits = ["banana", "orange"]
fruits.append(["apple", "mango"])
print(fruits)  # ['banana', 'orange', ['apple', 'mango']]
print(len(fruits))  # 3 — the nested list counts as one element

Um stattdessen alle Elemente einer anderen Liste zusammenzuführen, verwenden Sie extend().

extend()

extend(iterable) hängt jedes Element des angegebenen Iterables an das Ende der Liste an. Das Iterable kann eine Liste, ein Tupel, ein Set, ein String oder ein beliebiges anderes Iterable sein.

python— editable, runs on the server

extend() ist äquivalent zu fruits += more_fruits. Verwenden Sie es, wenn Sie bereits eine Sammlung von Elementen zum Zusammenführen haben; verwenden Sie append() für ein einzelnes Element.

insert()

insert(i, x) fügt Element x vor Position i ein. Alle vorhandenen Elemente ab Index i verschieben sich um eine Position nach rechts.

python— editable, runs on the server
  • insert(0, x) stellt das Element an den Anfang (ist jedoch O(n), da alle Elemente verschoben werden).
  • Wenn i größer oder gleich der Listenlänge ist, wird das Element am Ende angehängt – es wird kein Fehler ausgelöst.

Elemente entfernen

remove()

remove(x) durchsucht die Liste von links nach rechts und löscht das erste Element, das gleich x ist. Falls x nicht gefunden wird, wird ein ValueError ausgelöst.

python— editable, runs on the server

Schutz vor ValueError:

fruits = ["banana", "orange"]
item = "mango"
if item in fruits:
    fruits.remove(item)
else:
    print(f"{item} not in list")
# mango not in list

pop()

pop(i) entfernt das Element an Index i und gibt es zurück. Der Rückgabewert ist der entscheidende Unterschied zu remove().

python— editable, runs on the server

pop() ohne Argument entfernt das letzte Element und gibt es zurück – ein gängiges Stack-Muster:

stack = ["a", "b", "c"]
last = stack.pop()
print(stack)  # ['a', 'b']
print(last)   # c

clear()

clear() entfernt jedes Element aus der Liste und lässt sie leer. Es ist äquivalent zu del lst[:], aber besser lesbar.

fruits = ["banana", "apple", "orange"]
fruits.clear()
print(fruits)  # []

Verwenden Sie clear(), wenn Sie eine Liste leeren möchten, auf die möglicherweise auch andere Variablen verweisen – fruits = [] würde nur den Namen neu binden, während clear() das zugrunde liegende Objekt leert.

Elemente suchen

index()

index(x) gibt den ganzzahligen Index des ersten Vorkommens von x zurück. Es akzeptiert optionale start- und end-Argumente, um die Suche auf einen Teilbereich zu beschränken.

python— editable, runs on the server

Suche innerhalb eines Bereichs:

items = ["a", "b", "c", "b", "d"]
print(items.index("b"))       # 1  — first occurrence
print(items.index("b", 2))    # 3  — first occurrence at index >= 2

index() löst einen ValueError aus, wenn das Element fehlt. Verwenden Sie in, um zuerst zu prüfen, wenn das Fehlen möglich ist:

if "mango" in fruits:
    pos = fruits.index("mango")

count()

count(x) gibt die Anzahl der Vorkommen von x in der Liste zurück.

python— editable, runs on the server

Im Gegensatz zu index() löst count() für einen fehlenden Wert keinen Fehler aus – es gibt 0 zurück.

Elemente sortieren

sort()

sort() sortiert die Liste an Ort und Stelle standardmäßig in aufsteigender Reihenfolge. Es akzeptiert zwei optionale Schlüsselwortargumente:

  • reverse=True – in absteigender Reihenfolge sortieren.
  • key=<callable> – eine Funktion, die auf jedes Element vor dem Vergleich angewendet wird.
python— editable, runs on the server

In absteigender Reihenfolge sortieren:

numbers = [3, 1, 4, 1, 5]
numbers.sort(reverse=True)
print(numbers)  # [5, 4, 3, 1, 1]

Strings ohne Berücksichtigung der Groß- und Kleinschreibung mit key sortieren:

words = ["banana", "Apple", "cherry", "date"]
words.sort(key=str.lower)
print(words)  # ['Apple', 'banana', 'cherry', 'date']

sort() verändert die Liste und gibt None zurück. Wenn Sie eine sortierte Kopie benötigen, ohne das Original zu verändern, verwenden Sie stattdessen die eingebaute Funktion sorted():

original = [3, 1, 4]
result = sorted(original)
print(original)  # [3, 1, 4]  — unchanged
print(result)    # [1, 3, 4]

Weitere Informationen finden Sie unter Sort Lists, einschließlich benutzerdefinierter Komparatoren und dem Sortieren von Objekten.

reverse()

reverse() kehrt die Liste an Ort und Stelle um. Wie sort() gibt es None zurück.

python— editable, runs on the server

Um eine umgekehrte Kopie zu erhalten, ohne das Original zu verändern, verwenden Sie reversed() (gibt einen Iterator zurück) oder Slicing:

fruits = ["banana", "apple", "orange"]
print(list(reversed(fruits)))  # ['orange', 'apple', 'banana']
print(fruits[::-1])            # ['orange', 'apple', 'banana']
print(fruits)                  # ['banana', 'apple', 'orange']  — unchanged

Kopieren

copy()

copy() gibt eine flache Kopie der Liste zurück – ein neues Listenobjekt mit denselben Elementreferenzen.

original = ["banana", "apple", "orange"]
clone = original.copy()
clone.append("mango")

print(original)  # ['banana', 'apple', 'orange']  — unchanged
print(clone)     # ['banana', 'apple', 'orange', 'mango']

„Flach" bedeutet, dass verschachtelte Objekte (wie eine Liste in einer Liste) nicht dupliziert werden – sowohl das Original als auch die Kopie spiegeln Änderungen an diesen verschachtelten Objekten wider. Für ein vollständig unabhängiges Duplikat verwenden Sie copy.deepcopy() aus der Standardbibliothek. Weitere Informationen zu flachen und tiefen Kopien finden Sie unter Copy Lists.

Häufige Fallstricke

Alle veränderlichen Methoden geben None zurück. Ein häufiger Fehler ist die Zuweisung des Ergebnisses von sort(), reverse(), append() usw.:

# Wrong — result is None, not a sorted list
numbers = [3, 1, 2]
numbers = numbers.sort()
print(numbers)  # None
# Correct — sort() mutates in place
numbers = [3, 1, 2]
numbers.sort()
print(numbers)  # [1, 2, 3]

remove() und index() lösen einen ValueError für fehlende Elemente aus. Prüfen Sie immer zuerst mit in, oder fangen Sie die Ausnahme ab, wenn das Element möglicherweise nicht vorhanden ist.

append() vs. extend() für Listen. Die Verwendung von append(another_list) schachtelt die Liste als einzelnes Element ein; extend(another_list) fügt ihre Elemente zusammen.

Übung

Übung
Which Python list method removes every element from the list and returns None?
Which Python list method removes every element from the list and returns None?
Was this page helpful?