Skip to content

Rimuovere un elemento da un dizionario in Python (clear, pop, popitem, del)

Python

Questo articolo descrive come rimuovere un elemento (elemento) da un dizionario dict in Python.

  • Rimuovere tutti gli elementi da un dizionario:clear()
  • Rimuovere un elemento tramite una chiave e restituire un valore:pop()
  • Rimuovere un elemento e ripristinare una chiave e un valore:popitem()
  • Rimuovere un elemento tramite una chiave da un dizionario:del
  • Rimuovere gli elementi che soddisfano la condizione: Comprensioni del dizionario

Vedere l’articolo seguente per come aggiungere elementi a un dizionario.

Rimuovere tutti gli elementi da un dizionario:clear()

Il metodo clear() rimuove tutti gli elementi da un dizionario e lo rende vuoto.

d = {'k1': 1, 'k2': 2, 'k3': 3}

d.clear()
print(d)
# {}

Rimuovere un elemento tramite una chiave e restituire un valore:pop()

Specificando una chiave per il metodo pop(), l’elemento viene rimosso e viene restituito il suo valore.

d = {'k1': 1, 'k2': 2, 'k3': 3}

removed_value = d.pop('k1')
print(d)
# {'k2': 2, 'k3': 3}

print(removed_value)
# 1

Per la configurazione predefinita, la specifica di una chiave inesistente genera KeyError.

d = {'k1': 1, 'k2': 2, 'k3': 3}

# removed_value = d.pop('k4')
# print(d)
# KeyError: 'k4'

Se viene specificato il secondo argomento, il suo valore viene restituito se la chiave non esiste. Il dizionario stesso rimane invariato.

d = {'k1': 1, 'k2': 2, 'k3': 3}

removed_value = d.pop('k4', None)
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}

print(removed_value)
# None

Rimuovere un elemento e ripristinare una chiave e un valore:popitem()

Il metodo popitem() rimuove un elemento da un dizionario e contiene una tupla della sua chiave e valore (chiave, valore). Non è possibile specificare quale elemento rimuovere.

Viene generato un errore KeyError per un dizionario vuoto.

d = {'k1': 1, 'k2': 2}

k, v = d.popitem()
print(k)
print(v)
print(d)
# k2
# 2
# {'k1': 1}

k, v = d.popitem()
print(k)
print(v)
print(d)
# k1
# 1
# {}

# k, v = d.popitem()
# KeyError: 'popitem(): dictionary is empty'

Rimuovere un elemento tramite una chiave da un dizionario:del

È inoltre possibile utilizzare l’istruzione del per eliminare un elemento da un dizionario.

d = {'k1': 1, 'k2': 2, 'k3': 3}

del d['k2']
print(d)
# {'k1': 1, 'k3': 3}

È possibile specificare e rimuovere più elementi.

d = {'k1': 1, 'k2': 2, 'k3': 3}

del d['k1'], d['k3']
print(d)
# {'k2': 2}

Se viene specificata una chiave inesistente, viene generato l’errore KeyError.

d = {'k1': 1, 'k2': 2, 'k3': 3}

# del d['k4']
# print(d)
# KeyError: 'k4'

Rimuovere gli elementi che soddisfano la condizione: Comprensioni del dizionario

Per rimuovere elementi che soddisfano le condizioni da un dizionario, utilizzare Comprensioni del dizionario, la versione del dizionario delle comprensioni degli elenchi.

“Rimozione di articoli che soddisfano la condizione” equivale a “estrazione di articoli che non soddisfano la condizione”.

Ad esempio, per rimuovere gli elementi con un valore dispari, estrarre gli elementi con un valore pari. Lo stesso vale per il caso opposto.

d = {'apple': 1, 'banana': 10, 'orange': 100}

dc = {k: v for k, v in d.items() if v % 2 == 0}
print(dc)
# {'banana': 10, 'orange': 100}

dc = {k: v for k, v in d.items() if v % 2 == 1}
print(dc)
# {'apple': 1}

Il metodo items() di dict viene utilizzato per estrarre chiavi e valori.

È anche possibile specificare le condizioni per le chiavi.

dc = {k: v for k, v in d.items() if k.endswith('e')}
print(dc)
# {'apple': 1, 'orange': 100}

dc = {k: v for k, v in d.items() if not k.endswith('e')}
print(dc)
# {'banana': 10}

È inoltre possibile utilizzare eeo per specificare più condizioni.

dc = {k: v for k, v in d.items() if v % 2 == 0 and k.endswith('e')}
print(dc)
# {'orange': 100}