¿Cuál es la diferencia entre del, remove y pop en las listas Python

Aliaksei Yursha 30 enero 2023
  1. Lista de Python Eliminación por valor
  2. Eliminación de la lista de Python por índice
  3. Eliminación de la lista en Python por del
¿Cuál es la diferencia entre del, remove y pop en las listas Python

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