Middle
Quali sono le restrizioni sui chiavi in dict in Python?
sobes.tech AI
Risposta dell'AI
In Python, le chiavi in un dizionario (dict) devono essere oggetti hashabili (immutabili). Ciò significa che le chiavi devono avere uno stato immutabile e implementare il metodo __hash__().
Restrizioni principali:
- Le chiavi devono essere tipi immutabili, ad esempio: stringhe (
str), numeri (int,float), tuple (tuple), a condizione che tutti gli elementi della tupla siano anch'essi hashabili. - Non è possibile usare tipi mutabili, come liste (
list), set (set), dizionari (dict) come chiavi, poiché non sono hashabili.
Esempio:
valid_dict = {
"key": 1,
42: "value",
(1, 2): "tuple key"
}
invalid_dict = {
[1, 2]: "list as key" # genererà un TypeError
}
Se si tenta di usare un oggetto mutabile come chiave, Python genererà un errore TypeError: unhashable type.