Migliore risposta
Vediamo prima cosa è hashable e unhasable. In termini semplici, definiamo gli elementi i cui valori non possono essere modificati come hashable e gli oggetti i cui valori possono essere modificati come unhashable.
Ad esempio in Python, tutti gli oggetti immutabili possono essere definiti hashable mentre come oggetti mutabili può essere definito unhashable. Facciamo un esempio in cui possiamo ottenere tale errore e perché lo otteniamo.
Ad esempio quando usi un elenco come chiave nel dizionario Non può essere fatto e otterremo un errore TypeError: unhashable type.
Questo perché gli elenchi non possono essere “sottoposti ad hashing” e stiamo cercando di utilizzare un elenco come argomento hash. Questo significa che quando si tenta di eseguire lhashing di un oggetto non eseguibile, verrà restituito questo errore. Il modo standard per risolvere questo problema è eseguire il cast di un elenco in una tupla.
E poiché le tuple sono immutabili e quindi modificabili, esso può funzionare.
Risposta
dict = {a: 1}
Mostra un errore di tipo non modificabile in Python cmd sulla finestra.
Il significato hashable in python è quale valore non è mai modificabile. E unhashable è opposto a Hashable. Nel dizionario il valore può essere aggiornato in qualsiasi momento ma se linterprete python comprende il suo tipo di dati. Nel mio esempio dict = {a: 1} (key = a, value = 1) a è un tipo di dati stringa ma qui non segue la regola del tipo di dati stringa che è stata scritta e racchiudere i caratteri tra virgolette. Quindi, quindi, linterprete ha detto che questo valore di tipo di dati è unhashable (modificabile) ma il tipo di dati è frainteso.