HOWTO · Python
Entfernen des ersten Elements aus einer Liste in Python
Dieses Tutorial zeigt, wie Sie das erste Element aus einer Liste in Python entfernen.
Auf dieser Seite
Um das erste Element einer Python-Liste zu entfernen und die Liste dabei zu ändern, verwenden Sie items.pop(0) oder del items[0]. Index 0 bezeichnet die erste Position. Wenn Sie eine separate Liste ohne dieses Element benötigen, verwenden Sie items[1:]; remove(value) eignet sich nur, wenn Sie den zu entfernenden Wert kennen.
Verwenden Sie pop(0), um das erste Element direkt aus der Liste zu entfernen
pop(0) entfernt das Element an Index 0 aus der ursprünglichen Liste und gibt es zurück. Das ist nützlich, wenn der folgende Code sowohl den entfernten Wert als auch die aktualisierte Liste benötigt. Ein Aufruf von pop() ohne Index entfernt stattdessen das letzte Element.
Führen Sie dieses Beispiel aus:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
items = ["red", "green", "blue"]
removed = items.pop(0)
print(removed)
print(items)
Die ursprüngliche Liste wird geändert. Daher sehen auch andere Variablen, die auf dieselbe Liste verweisen, dass das Element entfernt wurde. Beim Entfernen eines Elements am Anfang einer Python-Liste rücken die übrigen Elemente um eine Position nach vorn. Für viele wiederholte Entfernungen von links empfiehlt sich stattdessen eine deque.
Verwenden Sie del, um das erste Element direkt aus der Liste zu entfernen
Verwenden Sie del items[0], wenn Sie das Element an der ersten Position entfernen möchten, den entfernten Wert aber nicht benötigen. Wie pop(0) ändert dieser Ausdruck die ursprüngliche Liste. del ist jedoch eine Anweisung und gibt kein Element zurück.
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
items = ["red", "green", "blue"]
del items[0]
print(items)
Verwenden Sie remove() nur, wenn Sie nach einem Wert entfernen möchten
items.remove(value) sucht das erste Element, das gleich value ist, und entfernt diesen Treffer. Damit wird nicht „das Element an Index 0“ entfernt. Wenn der erste Wert bereits bekannt ist, übergeben Sie ihn direkt. Bei doppelten Werten wird nur der erste passende Wert entfernt.
Wenn items beispielsweise ["red", "green", "red"] enthält, ergibt items.remove("red") die Liste ["green", "red"]. Wenn Sie den ersten Wert nicht kennen, aber das Element an der ersten Position entfernen möchten, verwenden Sie stattdessen pop(0) oder del items[0]. Eine leere Liste enthält keinen ersten Wert, den Sie an remove() übergeben könnten.
Verwenden Sie Slicing, wenn Sie eine neue Liste ohne das erste Element benötigen
items[1:] erstellt eine neue Liste mit allen Elementen ab Index 1 bis zum Ende. Die ursprüngliche Liste bleibt unverändert. Weisen Sie das Ergebnis wieder items zu, wenn die Variable auf die zugeschnittene Liste verweisen soll:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
items = ["red", "green", "blue"]
remaining = items[1:]
print(remaining)
print(items)
Der Ausschnitt hat keinen ausdrücklich angegebenen Endindex, weil Python standardmäßig das Ende der Liste verwendet. Das Ergebnis ist eine flache Kopie: Die äußere Liste ist neu, veränderliche Objekte darin werden jedoch weiterhin gemeinsam verwendet.
Verwenden Sie numpy.delete(), wenn Sie mit einem NumPy-Array arbeiten
Für ein eindimensionales NumPy-Array gibt numpy.delete(array, 0) ein neues Array zurück, aus dem der Wert an Index 0 entfernt wurde. Das Eingabearray wird dabei nicht verändert. Bei einem mehrdimensionalen Array wird dieses standardmäßig durch axis=None vor dem Löschen abgeflacht. Geben Sie daher eine Achse an, wenn Sie eine Zeile oder Spalte meinen: numpy.delete(array, 0, axis=0) gibt beispielsweise ein neues Array ohne die erste Zeile zurück. Diese Funktion setzt NumPy voraus und arbeitet mit Arrays, nicht mit Python-Listen. Verwenden Sie sie, wenn die Daten bereits als Array vorliegen, statt eine gewöhnliche Liste für eine einzelne Entfernung umzuwandeln.
Verwenden Sie deque.popleft() für wiederholte Entfernungen von links
Wenn Elemente wiederholt von der linken Seite einer Warteschlange entfernt werden müssen, bietet collections.deque die Methode popleft(). Sie entfernt das Element ganz links und gibt es zurück. Eine deque ist für effiziente Operationen an beiden Enden ausgelegt, während beim Entfernen des ersten Elements aus einer Liste die übrigen Elemente verschoben werden. Für eine einzelne Entfernung aus einer gewöhnlichen Liste ist pop(0) oder del items[0] einfacher. Wandeln Sie die Liste in eine deque um, wenn der übrige Ablauf von Warteschlangenoperationen profitiert.