Wie entferne ich das erste Element aus einer Liste?

Lesezeit: 3 Minuten

Benutzer-Avatar
RechteckGewirr

Wie entferne ich das erste Element aus einer Liste?

[0, 1, 2, 3]   →   [1, 2, 3]

Benutzer-Avatar
kevpie

Hier finden Sie eine kurze Sammlung nützlicher Listenfunktionen hier.

list.pop(index)

>>> l = ['a', 'b', 'c', 'd']
>>> l.pop(0)
'a'
>>> l
['b', 'c', 'd']
>>> 

del list[index]

>>> l = ['a', 'b', 'c', 'd']
>>> del l[0]
>>> l
['b', 'c', 'd']
>>> 

Diese beiden ändern Ihre ursprüngliche Liste.

Andere haben vorgeschlagen, Slicing zu verwenden:

  • Kopiert die Liste
  • Kann eine Teilmenge zurückgeben

Auch, wenn Sie viele durchführen pop(0)sollten Sie sich ansehen collections.deque

from collections import deque
>>> l = deque(['a', 'b', 'c', 'd'])
>>> l.popleft()
'a'
>>> l
deque(['b', 'c', 'd'])
  • Bietet eine höhere Leistung beim Popping vom linken Ende der Liste

  • Sie können auch negative Indizes verwenden, die dieselbe Bedeutung wie bei Listen haben.

    – Gabriel Devillers

    22. August 2018 um 10:55 Uhr

  • In meinem Fall ging die Zeit von 1:31 min. mit pop(0) auf 200 – 250 ms durch Verwendung deque. Ich danke dir sehr.

    – Christoph Schreiber

    13. Dezember 2020 um 18:05 Uhr

Schneiden:

x = [0,1,2,3,4]
x = x[1:]

Was tatsächlich eine Teilmenge des Originals zurückgeben, aber nicht ändern würde.

  • wenn x ist leer, x=x[1:] würde es klaglos leer stehen lassen. x.pop(0) würde für eine leere Liste werfen x. Manchmal will man auch werfen: Wenn die Annahme, dass mindestens ein Element in der Liste falsch ist, falsch ist, möchte man vielleicht benachrichtigt werden.

    – lese

    9. Juli 2016 um 18:50 Uhr

  • Ich mag diese Antwort viel mehr, da Mutationen fast immer böse sind.

    – Onkeltem

    24. Januar 2021 um 11:28 Uhr


>>> x = [0, 1, 2, 3, 4]
>>> x.pop(0)
0

Mehr dazu hier.

Informationen zum Aufteilen von Listen finden Sie im Python-Tutorial über Listen für mehr Details:

>>> l = [0, 1, 2, 3, 4]
>>> l[1:]
[1, 2, 3, 4]

Benutzer-Avatar
Zimm3r

du würdest es einfach tun

l = [0, 1, 2, 3, 4]
l.pop(0)

oder l = l[1:]

Vor-und Nachteile

Mit pop können Sie den Wert abrufen

sagen x = l.pop(0)
x wäre 0

Benutzer-Avatar
Martineau

Dann einfach löschen:

x = [0, 1, 2, 3, 4]
del x[0]
print x
# [1, 2, 3, 4]

Sie können auch verwenden list.remove(a[0]) zu pop das erste Element in der Liste aus.

>>>> a=[1,2,3,4,5]
>>>> a.remove(a[0])
>>>> print a
>>>> [2,3,4,5]

  • OP fragt nicht nach dem besten Weg. Dies ist nur ein weiterer Ansatz, um dasselbe zu erreichen!

    – Scheitelpunkt

    24. August 2014 um 14:27 Uhr

  • Ja, ein anderer Ansatz, der keinen Vorteil gegenüber den anderen Antworten hat. Es gibt eine Reihe von Möglichkeiten, dies zu tun. Warum nicht eine Antwort geben a.remove(a[1-1])? Das ist ein anderer Weg.

    – Ned Batchelder

    24. August 2014 um 14:29 Uhr

  • Mein Punkt ist, dass Ihre Antwort schlechter ist als die anderen Antworten und nichts zu empfehlen hat. Es gibt keinen Grund, diese Antwort gegenüber den anderen zu verwenden. Nur weil es “ein anderer Weg” ist, ist das kein Grund, es hier hinzuzufügen.

    – Ned Batchelder

    24. August 2014 um 14:44 Uhr

  • @NedBatchelder Ihr Punkt ist strittig. Es ist eine zusätzliche Methode, die für Listen in Python verfügbar ist, spezifisch für diese spezielle Aufgabe, und der Vollständigkeit halber sollte es erwähnt werden. Die erfundene BS a[1-1] Beispiel, andererseits ist es nicht. Ganz zu schweigen davon, dass seine Antwort in keiner Weise “schlechter als die anderen Antworten” ist.

    – Hejazzman

    8. November 2014 um 9:09 Uhr


  • Ich bleibe bei meiner Frage: Das wirkt seltsam und gekünstelt und hat nichts zu empfehlen. Tatsächlich ist der erste Satz irreführend, da Sie das i-te Element nicht mit entfernen können list.remove(a[i]). Bei doppelten Werten findet es möglicherweise ein früheres Element mit demselben Wert und entfernt dieses anstelle des i-ten.

    – Ned Batchelder

    8. November 2014 um 13:13 Uhr

1145390cookie-checkWie entferne ich das erste Element aus einer Liste?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy