Eliminar todas las apariciones de un elemento de una lista en Python

  1. Utilice la función filter() para eliminar todas las instancias de un elemento de una lista en Python
  2. Utilice la comprensión de la lista para eliminar todas las instancias de un elemento de una lista en Python
  3. Utilice la función remove() para eliminar todas las instancias de un elemento de una lista en Python

Una lista en Python permite múltiples apariciones del mismo elemento. Aunque el valor de un elemento puede ser el mismo que el de otros, cada elemento tendrá un índice diferente. Con estos números de índice, puede acceder fácilmente a los elementos que desee.

Pero puede haber algunas situaciones en las que no desee varias instancias del mismo elemento; entonces, seguramente querrá eliminar todas esas apariciones de ese elemento en particular de una lista. En Python, hay diferentes formas de lograrlo.

Utilice la función filter() para eliminar todas las instancias de un elemento de una lista en Python

En Python, filtrar elementos se vuelve más fácil con la ayuda de la función filter(). La función filter() toma dos argumentos, el primer argumento es una función y el segundo argumento puede ser conjuntos, listas, tuplas, etc.

Ejemplo 1: Función filter() con __ne__

myList = [2, 1, 3, 5, 1, 1, 1, 0]
myList = list(filter((1).__ne__, myList))
print(myList)

Producción:

[2, 3, 5, 0]

En este ejemplo, tiene una lista myList de la que desea eliminar la aparición de 1. La función filter() toma otra función, __ne__, que devolverá un bool ya sea True o False en función de si el valor 1 está presente dentro de la lista myList o no. Si el valor 1 está presente dentro de la lista, simplemente lo descartará. Entonces, lo que sea devuelto por la función filter() se convertirá en una lista usando la función list().

Ejemplo 2: Función filter() Con función lambda

myList = [2, 1, 3, 5, 1, 1, 1, 0]
valueToBeRemoved = 1

result = filter(lambda val: val !=  valueToBeRemoved, myList) 
print(list(result)) 

Producción:

[2, 3, 5, 0]

En lugar de pasar la función __ne__, pasamos una función lambda a la función filter().

De la lista myList tomará cada elemento uno por uno y lo guardará dentro de la variable val. Si los elementos presentes dentro de val y valueToBeRemoved no son iguales, solo los presentes dentro de val se agregan a la nueva variable result. Debe convertir el result en una lista utilizando la función list().

Utilice la comprensión de la lista para eliminar todas las instancias de un elemento de una lista en Python

Una Comprensión de lista es una forma corta de escribir código. La comprensión de listas es más rápida que las funciones y bucles normales.

Código de ejemplo:

myList = [1, 2, 3, 4, 2, 2, 3]
valueToBeRemoved = 2

myList = [value for value in myList if value != valueToBeRemoved]

print(myList)

Producción:

[1, 3, 4, 3]

Tiene una lista myList de la que desea eliminar la aparición del elemento 2. El código principal para eliminar todas las instancias de un elemento reside dentro de los corchetes []. Aquí, el bucle for se ejecutará primero, y luego tomará un valor de la lista myList y lo almacenará dentro de la variable value. Después de eso, si el valor dentro de la variable value y la variable valueToBeRemoved no coinciden, solo devolverá el valor de la variable value y lo almacenará en la Lista myList. Este proceso continuará hasta que la lista se vacíe. Finalmente, tendrá una lista que contendrá la salida deseada que desea.

Utilice la función remove() para eliminar todas las instancias de un elemento de una lista en Python

La función remove() solo elimina la primera aparición del elemento. Si desea eliminar toda la ocurrencia de un elemento usando la función remove(), puede usar un bucle ya sea bucle for o bucle while.

myList = [2, 1, 3, 5, 1, 1, 1, 0]
valueToBeRemoved = 1
 
try:
    while True:
        myList.remove(valueToBeRemoved)
except ValueError:
    pass
 
print(myList)

Producción:

[2, 3, 5, 0]

En el código anterior, ha creado una lista myList, y luego tiene una variable valueToBeRemoved, que contendrá el elemento cuya ocurrencia desea eliminar de la lista en este caso 1. Mientras recorre la lista, si ese elemento está dentro de la lista, se eliminará de la lista mediante la función remove().

Artículo relacionado - Python List

  • Eliminar varios elementos de una lista en Python
  • Copia profunda de una lista en Python