Articolo originale: Python List .remove() - How to Remove an Item from a List in Python
In questo articolo imparerai come usare il metodo integrato delle liste di Python remove()
.
Alla fine, saprai come usare remove()
per rimuovere un elemento da una lista di Python.
Ecco di che cosa parleremo:
- Sintassi del metodo
remove()
- Rimuovere un elemento da lista usando
remove()
remove()
rimuove solo la prima occorrenza di un elemento
Il Metodo remove()
- Una Panoramica della Sintassi
Il metodo remove()
è uno dei modi per rimuovere elementi da una lista in Python.
Il metodo remove()
rimuove un elemento da una lista tramite il suo valore e non tramite il suo indice.
La sintassi generica del metodo remove()
è la seguente:
nome_lista.remove(valore)
Vediamola nel dettaglio:
nome_lista
è il nome della lista con cui stai lavorando.remove()
è uno dei metodi integrati di Python.remove()
prende un solo argomento obbligatorio. Se non lo inserisci, otterrai unTypeError
– nello specifico, otterrai il seguente errore:TypeError: list.remove() takes exactly one argument (0 given)
.valore
è lo specifico valore dell'elemento che vuoi rimuovere danome_lista
.
Il metodo remove()
non restituisce il valore che è stato rimosso, ma restituisce None
, il che vuol dire che non c'è alcun valore di ritorno.
Se hai bisogno di rimuovere un elemento attraverso il suo numero di indice e/o per qualche ragione vuoi restituire (salvare) il valore che hai rimosso, puoi usare il metodo pop()
.
Come Rimuovere un Elemento da una Lista Usando il Metodo remove()
in Python
Per rimuovere un elemento da una lista usando il metodo remove()
, specifica il valore di quell'elemento e passalo come argomento al metodo.
remove()
lo cercherà nella lista per trovarlo e rimuoverlo.
#lista originale
programming_languages = ["JavaScript", "Python", "Java", "C++"]
#visualizza la lista originale
print(programming_languages)
# rimuovi il valore 'JavaScript' dalla lista
programming_languages.remove("JavaScript")
#visualizza la lista aggiornata
print(programming_languages)
#output
#['JavaScript', 'Python', 'Java', 'C++']
#['Python', 'Java', 'C++']
Se specifichi un valore che non è contenuto nella lista, otterrai un errore - nello specifico l'errore sarà un ValueError
:
programming_languages = ["JavaScript", "Python", "Java", "C++"]
#Voglio rimuovere il valore 'React'
programming_languages.remove("React")
#visualizza la lista
print(programming_languages)
#output
# line 5, in <module>
#programming_languages.remove("React")
#ValueError: list.remove(x): x not in list
Per evitare di incombere in questo errore, potresti controllare che il valore che vuoi rimuovere sia nella lista sin dal principio, usando la parola chiave in
.
Restituirà un valore Booleano – True
se l'elemento è nella lista o False
se il valore non è nella lista.
programming_languages = ["JavaScript", "Python", "Java", "C++"]
#controlla se 'React' è nella lista 'programming_languages'
print("React" in programming_languages)
#output
#False
Un altro modo per evitare questo errore è creare una condizione che dica, essenzialmente, "Se questo valore fa parte della lista, allora cancellalo. Se non esiste, mostra un messaggio che dica che non è contenuto nella lista".
programming_languages = ["JavaScript", "Python", "Java", "C++"]
if "React" in programming_languages:
programming_languages.remove("React")
else:
print("Questo valore non esiste")
#output
#Questo valore non esiste
Ora, invece di ottenere un errore di Python quando provi a cancellare un determinato valore che non esiste, ti viene restituito un messaggio che dice che l'elemento che vuoi cancellare non si trova nella lista con cui stai lavorando.
Il Metodo remove()
Rimuove la Prima Occorrenza dell'Elemento nella Lista
Una cosa da tenere a mente quando usiamo il metodo remove()
è che cercherà e rimuoverà la prima occorrenza dell'elemento.
Ciò significa che se nella lista c'è più di un'istanza dell'elemento il cui valore hai passato come argomento al metodo, allora solo la prima occorrenza verrà rimossa.
Diamo un'occhiata al seguente esempio:
programming_languages = ["JavaScript", "Python", "Java", "Python", "C++", "Python"]
programming_languages.remove("Python")
print(programming_languages)
#output
#['JavaScript', 'Java', 'Python', 'C++', 'Python']
Nell'esempio in alto, l'elemento con il valore di Python
compariva tre volte nella lista.
Quando remove()
è stato usato, solo la prima corrispondenza è stata rimossa – quella che segue il valore JavaScript
e precede il valore Java
.
Le altre due occorrenze di Python
rimangono nella lista.
Cosa succede, però, quando si vogliono rimuovere tutte le occorrenze di un elemento?
Usando soltanto remove()
non si può ottenere questo risultato, e potresti non voler rimuovere solo la prima istanza dell'elemento che hai specificato.
Come Rimuovere Tutte le Istanze di un Elemento in una Lista in Python
Uno dei modi per rimuovere tutte le occorrenze di un elemento all'interno di una lista è usare una comprensione di lista.
Una comprensione di lista crea una nuova lista da una lista esistente, o crea quella che viene chiamata una sotto-lista.
Ciò non andrà a modificare la lista originale, ma creerà invece una nuova lista che soddisfa le condizioni che hai stabilito.
#lista originale
programming_languages = ["JavaScript", "Python", "Java", "Python", "C++", "Python"]
#sotto-lista creata con la comprensione di lista
programming_languages_updated = [value for value in programming_languages if value != "Python"]
#visualizza la lista originale
print(programming_languages)
#visualizza la nuova sotto-lista che non contiene 'Python'
print(programming_languages_updated)
#output
#['JavaScript', 'Python', 'Java', 'Python', 'C++', 'Python']
#['JavaScript', 'Java', 'C++']
Nell'esempio in alto, c'è la lista originale programming_languages
.
Poi, una nuova lista (o sotto-lista) viene restituita.
Gli elementi contenuti nella sotto-lista devono soddisfare un requisito, e cioè: se un elemento della lista originale ha il valore di Python
, allora non farà parte della sotto-lista.
Ora, se non vuoi creare una nuova lista ma modificare quella già esistente in loco, allora puoi usare l'assegnazione di intervallo combinata con una comprensione di lista.
Con l'assegnazione di intervallo puoi modificare e sostituire alcune parti (o intervalli) della lista.
Per sostituire la lista intera, usa la sintassi [:]
dello slicing, insieme alla comprensione di lista.
La comprensione di lista stabilisce la condizione secondo cui ogni elemento con valore di Python
non farà più parte della lista.
programming_languages = ["JavaScript", "Python", "Java", "Python", "C++", "Python"]
programming_languages[:] = (value for value in programming_languages if value != "Python")
print(programming_languages)
#output
#['JavaScript', 'Java', 'C++']
Conclusione
Ecco fatto! Ora sai come rimuovere un elemento da una lista di Python usando il metodo remove()
. Hai anche visto anche alcuni modi per rimuovere tutte le occorrenze di un elemento da una lista di Python.
Spero che tu abbia trovato utile questo articolo.
Per saperne di più sul linguaggio di programmazione Python, dai un'occhiata alla Certificazione di Calcolo Scientifico con Python di freeCodeCamp.
Inizierai dalle basi e imparerai in modo interattivo, semplice e intuitivo. Inoltre, alla fine del corso lavorerai a cinque progetti per mettere in pratica e consolidare ciò che hai imparato.
Grazie per aver letto e buona programmazione 😊 !