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


773

Tengo la lista [0, 1, 2, 3, 4] que me gustaría incluirla [1, 2, 3, 4]. ¿Cómo hago esto?

Respuestas:


1261

Lista de Python

list.pop (index)

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

del list [índice]

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

Ambos modifican su lista original.

Otros han sugerido usar rebanadas:

  • Copia la lista
  • Puede devolver un subconjunto

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

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

También puede usar índices negativos, que tienen el mismo significado que con las listas.
— Gabriel Devillers

189

Rebanar:

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

Lo que en realidad devolvería un subconjunto del original pero no lo modificaría.


17
si xestá vacío, x=x[1:]lo dejaría vacío sin quejarse. x.pop(0)tiraría por una lista vacía x. A veces, lanzar es lo que uno quiere: si la suposición de que hay al menos un elemento en la lista es incorrecta, es posible que desee recibir una notificación.
— Ead

¡Gracias por esto! Esta es una mejor respuesta, porque no es destructivo
— Hee Jin


29

Con el corte de listas, vea el tutorial de Python sobre listas para más detalles:

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

29

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) xsería0


15

Luego solo bórralo:

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

8

Puede usar list.reverse()para invertir la lista y luego list.pop()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

5

También puede usar list.remove(a[0])para popeliminar el primer elemento de la lista.

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

3
OP no está preguntando sobre la mejor manera de hacerlo. ¡Este es solo otro enfoque para lograr lo mismo!
— vertexion

1
Sí, otro enfoque que no tiene ventaja sobre las otras respuestas. Hay muchas formas de hacerlo. ¿Por qué no dar una respuesta de a.remove(a[1-1])? Esa es otra forma.
— Ned Batchelder

2
Mi punto es que su respuesta es peor que las otras respuestas, y no tiene nada que recomendar. No hay razón para usar esta respuesta sobre las otras. El hecho de que sea "otra forma" no es una razón para agregarlo aquí.
— Ned Batchelder

44
@NedBatchelder Tu punto es discutible. Es un método adicional disponible para las listas en Python, específico para esta tarea en particular, y en aras de la exhaustividad debe tenerse en cuenta. El BS inventado un ejemplo [1-1], por otro lado, no lo es. Sin mencionar que su respuesta no es "peor que las otras respuestas" de ninguna manera.
— Hejazzman

8
Mantengo mi pregunta: esto parece extraño y artificial, y no tiene nada que recomendar. De hecho, la primera oración es engañosa, porque no se puede eliminar el elemento i con list.remove(a[i]). Con valores duplicados, puede encontrar un elemento anterior con el mismo valor y eliminar ese en lugar del i.
— Ned Batchelder

4

Si está trabajando con numpy , debe usar el método de eliminación :

import numpy as np

a = np.array([1, 2, 3, 4, 5])

a = np.delete(a, 0)

print(a) # [2 3 4 5]

1

Hay una estructura de datos llamada "deque" o cola doble que es más rápida y eficiente que una lista. Puede usar su lista y convertirla a deque y hacer las transformaciones requeridas en ella. También puede convertir la deque a la lista.

import collections
mylist = [0, 1, 2, 3, 4]

#make a deque from your list
de = collections.deque(mylist)

#you can remove from a deque from either left side or right side
de.popleft()
print(de)

#you can covert the deque back to list
mylist = list(de)
print(mylist)

Deque también proporciona funciones muy útiles, como insertar elementos en cualquier lado de la lista o en cualquier índice específico. También puede rotar o invertir una deque. ¡¡Darle una oportunidad!!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.