Rimuovi tutte le occorrenze di un elemento da una lista in Python
-
Usa la funzione
filter()
per rimuovere tutte le istanze di un elemento da una lista in Python - Usa la comprensione della lista per rimuovere tutte le istanze di un elemento da una lista in Python
-
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 cicli 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 bucle della lista, se quell’elemento è all’interno della lista, sarà rimosso dalla lista usando la funzione remove()
.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn