Wie entferne ich das erste Element aus einer Liste?
[0, 1, 2, 3] → [1, 2, 3]
RechteckGewirr
Wie entferne ich das erste Element aus einer Liste?
[0, 1, 2, 3] → [1, 2, 3]
kevpie
Hier finden Sie eine kurze Sammlung nützlicher Listenfunktionen hier.
>>> l = ['a', 'b', 'c', 'd']
>>> l.pop(0)
'a'
>>> l
['b', 'c', 'd']
>>>
>>> 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:
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'])
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]
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
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