¿Cuál es la diferencia entre del, remove y pop en las listas Python
- Lista de Python Eliminación por valor
- Eliminación de la lista de Python por índice
-
Eliminación de la lista en Python por
del
Como suele suceder, Python ofrece varios medios para lograr lo mismo.
Si necesitas eliminar un elemento de una lista, puedes usar cualquiera de los siguientes métodos
o list.pop()
o list.pop()
funciones o la sentencia del
incorporada.
En los ejemplos siguientes, cubriremos cada uno de estos enfoques y discutiremos sus diferencias y compensaciones.
Lista de Python Eliminación por valor
list.remove()
elimina el primer elemento de la lista, cuyo valor es igual al del argumento pasado.
Cuando se utiliza este método, normalmente no se sabe o no le importa cuál es el índice del elemento que se va a eliminar.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.remove('Cindy')
>>> names
['Bob', 'Noah']
Tenga cuidado cuando utilice este método.
Si un elemento que está intentando eliminar no existe en la lista,
el tiempo de ejecución de Python arrojará un ValueError
.
>>> names = ['Bob', 'Noah']
>>> names.remove('Cindy')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
Para navegar por este problema, tendrás que comprobar si un elemento
existe en la lista antes de intentar list.remove()
it.
>>> names = ['Bob', 'Noah']
>>> if 'Cindy' in names:
... names.remove('Cindy')
...
>>>
Eliminación de la lista de Python por índice
Si conoce el índice de un elemento que quiere eliminar, puede utilizar el método list.pop()
.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.pop(1)
'Cindy'
>>> names
['Bob', 'Noah']
list.pop()
elimina un elemento en el índice especificado y lo devuelve.
Si no le da ningún índice a list.pop()
, eliminará el último elemento de la lista.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.pop()
'Noah'
>>> names
['Bob', 'Cindy']
Eliminación de la lista en Python por del
Otra opción para eliminar un elemento de una lista por índice es utilizar la sentencia incorporada del
.
A diferencia de list.pop()
la sentencia del
no devuelve un valor eliminado.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[1]
>>> names
['Bob', 'Noah']
La sentencia del
es también más flexible que list.pop()
. Puede usarla para eliminar rangos de valores de la lista.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[0:2]
>>> names
['Noah']
También puede usarla para borrar la lista entera.
>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[:]
>>> names
[]
Como puede ver en lo anterior, cada enfoque tiene casos de uso ligeramente diferentes.
Aún así, si todo lo que necesita es eliminar un solo elemento de la lista sin recordar su valor, entonces cualquiera de los dos métodos funcionará.
Use el que se lea mejor en el contexto más amplio de su código.
Artículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python