Perché le chiavi nei dizionari Python devono essere immutabili e si possono usare chiavi mutabili?
sobes.tech AI
Risposta dell'AI
Le chiavi in un dizionario Python devono essere immutabili perché il dizionario utilizza l'hash per un accesso rapido ai valori. Se la chiave è mutabile, il suo hash può cambiare dopo l'inserimento nel dizionario, rendendo impossibile trovare quella chiave e, di conseguenza, il suo valore.
Ad esempio, stringhe, numeri e tuple (costituite da elementi immutabili) sono chiavi appropriate, poiché il loro hash rimane costante.
Non è possibile usare chiavi mutabili (come liste o dizionari) perché non hanno un hash costante e non supportano il metodo hash(). Tentare di usare un oggetto mutabile come chiave causerà un errore TypeError.
Esempio:
my_dict = {}
my_dict[[1, 2, 3]] = "value" # TypeError: unhashable type: 'list'
Pertanto, l'immutabilità delle chiavi garantisce il corretto funzionamento della tabella hash del dizionario.