Rimuovi tutte le occorrenze di un elemento da una lista in Python

  1. Usa la funzione filter() per rimuovere tutte le istanze di un elemento da una lista in Python
  2. Usa la comprensione della lista per rimuovere tutte le istanze di un elemento da una lista in Python
  3. Usa la funzione remove() per rimuovere tutte le istanze di un elemento da una lista in Python

Una lista in Python consente più occorrenze dello stesso elemento. Anche se il valore di un elemento può essere lo stesso di altri, ogni elemento avrà un indice diverso. Usando questi numeri indice, puoi accedere facilmente a qualsiasi elemento tu voglia.

Ma potrebbero esserci alcune situazioni in cui non desideri più istanze dello stesso elemento; quindi, vorrai sicuramente rimuovere tutte quelle occorrenze di quel particolare elemento da una lista. In Python, ci sono diversi modi per ottenere questo risultato.

Usa la funzione filter() per rimuovere tutte le istanze di un elemento da una lista in Python

In Python, filtrare gli elementi diventa più facile con l’aiuto della funzione filter(). La funzione filter() accetta due argomenti, il primo argomento è una funzione e il secondo argomento può essere insiemi, liste, tuple, ecc.

Esempio 1: Funzione filter() con __ne__

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

Produzione:

[2, 3, 5, 0]

In questo esempio, hai una lista myList da cui desideri rimuovere l’occorrenza di 1. La funzione filter() accetta un’altra funzione, __ne__, che restituirà un bool True o False a seconda che il valore 1 sia presente o meno all’interno della lista myList. Se il valore 1 è presente all’interno dell’lista, lo scarterà semplicemente. Quindi tutto ciò che verrà restituito dalla funzione filter() sarà convertito in una lista usando la funzione list().

Esempio 2: Funzione filter() Con funzione lambda

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

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

Produzione:

[2, 3, 5, 0]

Invece di passare la funzione __ne__, passiamo una funzione lambda alla funzione filter().

Dalla lista myList prenderete ogni elemento uno per uno e lo memorizzerete all’interno della variabile val. Se gli elementi presenti all’interno sia di val che di valueToBeRemoved non sono uguali, alla nuova variabile result vengono aggiunti solo quelli presenti all’interno di val. Dovresti convertire il result in una lista usando la funzione list().

Usa la comprensione della lista per rimuovere tutte le istanze di un elemento da una lista in Python

Una List comprehension è un modo breve per scrivere codice. La comprensione delle liste è più veloce delle normali funzioni e cicli.

Codice di esempio:

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

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

print(myList)

Produzione:

[1, 3, 4, 3]

Hai una lista myList da cui vuoi rimuovere l’occorrenza dell’elemento 2. Il codice principale per rimuovere tutte le istanze di un elemento risiede all’interno delle parentesi quadre []. Qui, il ciclo for verrà eseguito per primo, quindi prenderà un valore dalla lista myList e lo memorizzerà all’interno della variabile value. Dopodiché, se il valore all’interno della variabile value e la variabile valueToBeRemoved non corrispondono, restituirà solo il valore della variabile value e lo memorizzerà nella List myList. Questo processo continuerà fino a quando l’lista non sarà vuoto. Infine, avrai una lista che conterrà l’output desiderato che desideri.

Usa la funzione remove() per rimuovere tutte le istanze di un elemento da una lista in Python

La funzione remove() rimuove solo la prima occorrenza dell’elemento. Se vuoi rimuovere tutte le occorrenze di un elemento usando la funzione remove(), puoi usare un loop sia for loop o while.

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

Produzione:

[2, 3, 5, 0]

Nel codice sopra, hai creato una lista myList, e poi hai una variabile valueToBeRemoved, che conterrà l’elemento di cui vuoi rimuovere l’occorrenza dall’lista in questo caso 1. Durante il ciclo della lista, se quell’elemento è all’interno della lista, sarà rimosso dalla lista usando la funzione remove().

Articolo correlato - Python List

  • Come convertire una lista in stringa in Python
  • Che cos'è la differenza tra del, remove e pop su Python Lists