Python ofrece múltiples formas de eliminar elementos de listas: los métodos remove(), pop() y el operador del. Cada enfoque tiene sus matices. La elección correcta depende de si se necesita eliminar un elemento por valor, índice, obtener el valor eliminado o simplemente quitar un elemento.
La confusión entre remove(), pop() y del a menudo lleva a errores: la elección incorrecta del método puede provocar una excepción o eliminar el elemento incorrecto. También es importante saber qué sucede con el valor devuelto y cómo reaccionan los distintos métodos ante la ausencia de un elemento en la lista.
remove(x) elimina el primer elemento encontrado con el valor x — lanza una excepción ValueError si no existepop([i]) elimina y devuelve el elemento en el índice i (sin índice — el último elemento). Si el índice está fuera de rango — lanza IndexErrordel list[i] elimina el elemento en el índice sin devolver un valor. Se pueden eliminar porciones (del list[i:j])Ejemplo de código:
lst = [10, 20, 30, 20] lst.remove(20) # [10, 30, 20] lst.pop(1) # Elimina 30, [10, 20] del lst[0] # [20]
Características clave:
¿Qué sucede si se llama a remove() para un valor que no está en la lista?
Se genera un ValueError:
lst = [1, 2] lst.remove(5) # ValueError: list.remove(x): x not in list
¿Cómo devolver el elemento que acaba de ser eliminado de la lista?
Solo pop devuelve el elemento eliminado.
lst = [7, 8, 9] x = lst.pop() # x = 9
¿Se puede usar del para eliminar por valor?
No, del solo funciona con un índice o un rango. Por valor, solo se puede a través de remove.
** Caso negativo Un programador escribe un bucle a través de range(len(lst)) y elimina elementos usando del — la indexación se descompone, se omiten elementos. Ventajas: Directo y "lógico" para un principiante Desventajas: Fácil de obtener un comportamiento inesperado — ciertos elementos no se eliminan, la lista no funciona como se esperaba. ** Caso positivo Antes de eliminar por valor — hay una comprobación, pop se utiliza solo si el índice es garantizado, la eliminación por índice se hace en orden inverso. Ventajas: El código es resistente a errores, no hay omisiones de elementos Desventajas: A veces el código es un poco más largo, pero es transparente y seguro