HOWTO · Python

Eliminar varios elementos de una lista en Python

Podemos usar sentencias de control if ... else, listas por comprensión, corte de listas y bucles for para eliminar varios elementos de una lista en Python.

En esta página

Para eliminar varios elementos de una lista de Python, primero decide si la regla de selección depende del valor de cada elemento o de su posición. Una comprensión de listas sirve para filtrar por valor y conservar la lista original; del modifica la lista al eliminar un rango o índices conocidos.

Elige si quieres eliminar valores o índices

Usa una condición cuando lo que determina qué elementos conservar es su valor, por ejemplo, si quieres quedarte solo con los números pares. Usa índices cuando conoces las posiciones que quieres eliminar, sin importar qué valores contienen. Una comprensión crea una lista nueva y deja disponible la lista de origen. del modifica la lista existente, algo que importa si otro código conserva una referencia a ella.

Elimina los valores que cumplan una condición

Este ejemplo conserva los valores pares en una lista nueva. Cambia el predicado que aparece después de if para aplicar otra regla, como excluir una cadena concreta o conservar los valores que superen un umbral.

Ejecuta este ejemplo:

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

numbers = [2, 3, 4, 5, 6, 7, 8]
evens = [number for number in numbers if number % 2 == 0]
print("Original:", numbers)
print("Filtered:", evens)

La lista original no se modifica. Evita llamar a remove() mientras recorres esa misma lista: al eliminar un elemento, los demás se desplazan y puedes saltarte coincidencias consecutivas. Si necesitas modificar la lista original, recorre una copia, por ejemplo, con for value in numbers.copy():, y elimina de numbers los valores que cumplan la condición. Para filtrar, la comprensión es más breve y evita este riesgo de modificar la lista durante el recorrido.

Elimina un rango contiguo con del y cortes

Los índices de las listas empiezan en cero. En un corte start:stop, se incluye start y se excluye stop; por eso, del items[2:5] elimina los elementos de los índices 2, 3 y 4. Esto modifica la lista. La misma regla, que incluye el inicio y excluye el final, facilita entender los rangos contiguos: la posición final es la del primer elemento que se conserva.

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

items = ["a", "b", "c", "d", "e", "f"]
del items[2:5]
print(items)

Si omites un extremo del corte, se usa el inicio o el final de la lista. Por ejemplo, del items[:2] elimina los dos primeros elementos, mientras que del items[3:] elimina todos los elementos desde el índice 3 en adelante. Estas formas sirven para rangos contiguos; no permiten seleccionar posiciones dispersas.

Elimina índices seleccionados de forma segura

Cuando las posiciones están dispersas, elimina los índices en orden descendente. Al eliminar primero un índice mayor, las posiciones inferiores no cambian. Si procesas los índices de menor a mayor, cada eliminación desplaza los elementos posteriores hacia la izquierda y cambia a qué elementos corresponden esos índices.

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

items = ["a", "b", "c", "d", "e", "f"]
indexes_to_remove = [0, 2, 5]
for index in sorted(indexes_to_remove, reverse=True):
    del items[index]
print(items)

Indica índices válidos para la lista tal como está antes de eliminar elementos y evita repetirlos en la selección. Este patrón modifica items; haz una copia primero si necesitas conservar los valores originales. Si quieres elegir los valores por una condición y no por su posición, usa un filtro.

Elige el método adecuado para tu lista

Usa una comprensión de listas para filtrar por valor y obtener un resultado independiente. Usa del items[start:stop] para modificar la lista y eliminar un único rango contiguo. Si conoces varias posiciones dispersas, ordena los índices de mayor a menor y elimínalos uno por uno. Estos métodos dejan clara la regla de selección y ayudan a evitar cambios accidentales en los elementos equivocados.