1064 Stimmen

Wie kann ich den ersten Eintrag aus einer Liste entfernen?

Wie kann ich den ersten Eintrag aus einer Liste entfernen?

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

1655voto

kevpie Punkte 24102

Hier finden Sie eine kleine Sammlung von nützlichen Listenfunktionen aquí .

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, das Schneiden zu verwenden:

  • Kopiert die Liste
  • Kann eine Teilmenge zurückgeben

Wenn Sie außerdem viele 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, wenn vom linken Ende der Liste aus gepoppt wird

4 Stimmen

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

9 Stimmen

In meinem Fall sank die Zeit von 1:31 Min. mit pop(0) auf 200 - 250 ms durch Verwendung von deque . Ich danke Ihnen so sehr.

267voto

justin.m.chase Punkte 12037

Schneiden:

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

Dies würde eine Teilmenge des Originals zurückgeben, es aber nicht verändern.

36 Stimmen

Wenn x leer ist, x=x[1:] ohne sich zu beschweren, leer lassen würde. x.pop(0) würde für eine leere Liste werfen x . Manchmal ist Werfen das, was man will: Wenn die Annahme, dass es mindestens ein Element in der Liste gibt, falsch ist, möchte man vielleicht benachrichtigt werden.

4 Stimmen

Diese Antwort gefällt mir viel besser, denn Mutationen sind fast immer böse.

65voto

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

Mehr dazu aquí .

39voto

Haes Punkte 12351

Mit List Slicing, siehe das Python-Tutorial über Listen für weitere Einzelheiten:

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

36voto

Zimm3r Punkte 3273

Würden Sie einfach dies tun

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

ou l = l[1:]

Pro und Kontra

Mit pop können Sie den Wert abrufen

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X