Svuota un dizionario in Python
-
Assegna
{}
per svuotare un dizionario in Python -
Usa la funzione
clear()
per rimuovere tutti gli elementi da 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.