Pregunta ¿Cómo eliminar el primer elemento de una lista?


Tengo la lista [0, 1, 2, 3, 4] Me gustaría hacerlo en [1, 2, 3, 4]. ¿Cómo hago esto?


526
2017-12-13 07:38


origen


Respuestas:


Lista de Python

list.pop (índice)

>>> 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']
>>> 

Ambos modifican tu lista original.

Otros han sugerido usar slicing:

  • Copia la lista
  • Puede devolver un subconjunto

Además, si está realizando muchos pop (0), debería mirar colecciones.deque

from collections import deque
>>> l = deque(['a', 'b', 'c', 'd'])
>>> l.popleft()
'a'
>>> l
deque(['b', 'c', 'd'])
  • Proporciona mayor rendimiento apareciendo desde el extremo izquierdo de la lista

828
2017-12-13 07:45



Rebanar

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

Lo cual realmente devolvería un subconjunto del original pero no lo modificaría.


135
2017-12-13 07:41



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

Más sobre esto aquí.


30
2017-12-13 07:40



solo harías esto

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

o l = l[1:]

Pros y contras

Usando pop puedes recuperar el valor

decir x = l.pop(0) x sería 0


24
2017-12-13 07:43



Con la división de listas, consulte el tutorial de Python sobre liza para más detalles:

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

21
2017-12-13 07:41



Entonces simplemente elimínelo:

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

14
2017-12-13 07:47



Puedes usar list.reverse() para invertir la lista, luego list.pop() para eliminar el último elemento, por ejemplo:

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


l.pop()
0
l.pop()
1
l.pop()
2
l.pop()
3
l.pop()
4

7
2017-10-30 19:29