HOWTO · Python

Svuota un dizionario in Python

Mostra come svuotare un dizionario in Python

Questo tutorial dimostrerà come svuotare un dizionario in Python.

Assegna {} per svuotare un dizionario in Python

Una semplice soluzione per svuotare un dizionario in Python è assegnare {} a un dizionario.

L’assegnazione di {} istanzia un nuovo oggetto e sostituisce il dizionario esistente. Ciò significa che un nuovo riferimento in memoria viene assegnato per un nuovo dizionario e lo spazio allocato in memoria per il vecchio dizionario che è stato sostituito viene contrassegnato per la garbage collection.

dct = {"name": "John", "age": 23}

dct = {}

print("Dictionary contains:", dct)

Produzione:

Dictionary contains : {}

Usa la funzione clear() per rimuovere tutti gli elementi da un dizionario in Python

Un altro approccio consiste nell’usare la funzione incorporata in Python, clear(), che rimuove tutti i contenuti esistenti nel dizionario. La funzione non ha parametri e non ha valore di ritorno. Il suo unico scopo è solo quello di cancellare il contenuto di un dizionario.

dict = {"name": "John", "age": 23}

dict.clear()

print("Dictionary contains :", dict)

Produzione:

Dictionary contains : {}

La differenza tra l’assegnazione della funzione {} e clear() è che quest’ultima non crea una nuova istanza ma rimuove tutto il contenuto del dizionario esistente così come i riferimenti del dizionario perché il contenuto è cancellato.

Confrontiamo questi due approcci nello stesso caso d’uso.

Utilizzando la funzione incorporata, clear():

dict1 = {"name": "John", "age": 23}
dict2 = dict1

dict1.clear()

print("After using clear()")
print("Dictionary 1 contains :", dict1)
print("Dictionary 2 contains :", dict2)

Produzione:

After using clear()
Dictionary 1 contains : {}
Dictionary 2 contains : {}

Come puoi vedere, dict1 e dict2 sono ora vuoti.

Assegnazione del dizionario a {}:

dict1 = {"name": "John", "age": 23}
dict2 = dict1

# Assign {} removes only dict1 contents
dict1 = {}

print("After assigning {}")
print("Dictionary 1 contains :", dict1)
print("Dictionary 2 contains :", dict2)

Produzione:

After assigning {}
Dictionary 1 contains : {}
Dictionary 2 contains : {'name': 'John', 'age': 23}

Nell’esempio sopra, dict1 = {} ha creato un nuovo dizionario vuoto, mentre dict2 punta ancora al vecchio valore di dict1, che lascia i valori in dict2 invariati. In questo caso, la garbage collection non viene attivata perché è ancora presente un’altra variabile che fa riferimento al dizionario.

In sintesi, l’utilizzo di {} per cancellare tutti i contenuti in un dizionario crea una nuova istanza invece di aggiornare il riferimento al dizionario esistente. Se hai un altro nome che fa riferimento allo stesso dizionario, è meglio usare la funzione clear() in modo che anche tutti i riferimenti alla stessa istanza vengano cancellati.