Eliminar varios elementos de una lista en Python

Jay Prakash Gupta 30 enero 2023
  1. Eliminar varios elementos de una lista mediante instrucciones de control if...else
  2. Eliminar varios elementos de una lista mediante el método de comprensión de listas en Python
  3. Eliminar varios elementos de una lista mediante la división de listas
  4. Eliminar varios elementos de una lista mediante el bucle for
Eliminar varios elementos de una lista en Python

Para eliminar varios valores de una lista de Python, podemos eliminar los valores reales de la lista o los índices de valores que se eliminarán de la lista. Podemos usar declaraciones de control if...else, comprensión de listas, división de listas y bucles for para eliminar varios elementos de una lista en Python.

Eliminar varios elementos de una lista mediante instrucciones de control if...else

Podemos usar declaraciones de control if...else para eliminar múltiples valores de una lista en Python si los valores satisfacen una determinada condición. Los elementos también se pueden eliminar si sus índices cumplen una determinada condición.

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20]
print("Original list : ", list1)


for ele in list1:
    if (ele % 2) != 0:
        list1.remove(ele)

print("List after deleting all values which are odd : ", list1)

Producción :

Original list :  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20]
List after removing all the odd values :  [2, 4, 6, 8, 10, 20]

Aquí, tenemos una lista de números enteros y necesitamos eliminar los elementos con el valor impar de la lista. En este caso, recorremos todos los elementos de la lista l1 y eliminamos un elemento de la lista utilizando el método remove() si el elemento tiene un valor impar.

Eliminar varios elementos de una lista mediante el método de comprensión de listas en Python

En Python, la comprensión de listas se refiere al proceso de generar una nueva lista a partir de una lista existente. La comprensión de la lista también se puede utilizar para eliminar varios elementos de la lista. Podemos crear una nueva lista eliminando los valores que se eliminarán de la lista original.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
l2 = [x for x in l1 if x % 2 == 0]

print("Original list : ", l1)
print("List after deleting all the odd values present in List : ", l2)

Producción :

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after deleting all the odd values present in List :  [2, 4, 6, 8, 10, 20, 80]

Aquí, creamos la lista l2 a partir de la lista l1, que solo contiene todos los valores pares en l1. En otras palabras, podemos decir que creamos una nueva lista l2 de la lista existente l1 eliminando todos los valores impares en la lista l1.

Eliminar varios elementos de una lista mediante la división de listas

También podemos eliminar varios elementos de una lista utilizando el método de división de listas. Aquí podemos poner el rango del elemento desde el inicio hasta el último índice del elemento que queremos eliminar de la lista en el método del.

En lugar de utilizar un único índice en el método del, utilizamos un rango de valores desde el inicio hasta el último índice de los elementos que queremos eliminar de la lista. Eliminará los elementos contiguos de la lista. Debemos tener en cuenta que el índice de valores comienza desde 0 en Python para listas.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
print("Original list : ", l1)

del l1[2:5]

print("List after removing values at index 2, 3 and 4 : ", l1)

Producción :

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after removing values at index 2, 3 and 4 :  [1, 2, 6, 7, 8, 9, 10, 20, 80, 99]

Elimina los valores de los índices 2, 3 y 4 de la lista l1 utilizando el método del.

Una cosa importante a tener en cuenta aquí es que el primer índice 2 es inclusivo, es decir, el elemento del índice 2 de la lista 3 se elimina mientras que el último índice es un valor exclusivo, es decir, el elemento del índice 5 de la lista. 6 no se elimina.

Eliminar varios elementos de una lista mediante el bucle for

También podemos usar los bucles for para eliminar varios elementos de una lista.

Para aplicar este método, tenemos que almacenar los índices de los elementos que queremos eliminar de la lista. Pero la eliminación aleatoria del elemento resultará en cambiar los valores de los índices. Nuestra estrategia inteligente será eliminar el elemento cuya posición en la lista sea mayor. Entonces, el valor del elemento en otros índices no cambiará. Ahora, ordenaremos la lista en orden descendente para eliminar primero el elemento con un índice más alto. El código para este enfoque se muestra a continuación.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
print("Original list : ", l1)

indexes_to_be_removed = [0, 2, 5]

for idx in sorted(indexes_to_be_removed, reverse=True):
    del l1[idx]

print("List after removing values at index 0, 2 and 5: ", l1)

Producción :

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after removing values at index 0, 2 and 5:  [3, 5, 6, 8, 9, 10, 20, 80, 99]

Elimina los valores de los índices 0, 2 y 5 de la lista l1 utilizando el método del.

Artículo relacionado - Python List