Nei dizionari Python le chiavi vengono confrontate utilizzando ==
e l'operatore di uguaglianza con le liste esegue un controllo di uguaglianza articolo per articolo in modo che due elenchi diversi con gli stessi elementi siano uguali e si comportino come la stessa chiave in un dizionario.
Se è necessario mantenere un dizionario o una serie di elenchi per identità anziché per uguaglianza, è sufficiente racchiudere l'elenco in un oggetto definito dall'utente oppure, in base al contesto, è possibile utilizzare un dizionario in cui sono memorizzati gli elementi/recuperare utilizzando id
in modo esplicito.
Nota, tuttavia, che mantenendo la id
di un oggetto memorizzato non implica l'oggetto rimarrà vivo, che non v'è alcun modo per andare da id
di opporsi e che id
può essere riutilizzato nel tempo per gli oggetti che sono stati raccolti rifiuti . Una soluzione è quella di utilizzare
my_dict[id(x)] = [x, value]
invece di
my_dict[id(x)] = value
Ah, grazie - questo è quello che stavo cercando. – sdasdadas
...e se tu * fai * vuoi l'hashing con id, per qualche ragione, puoi fare esattamente questo. – Elazar