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.