Python ne permet pas aux objets non hachables d'être utilisés comme clés dans d'autres dictionnaires. Comme l'a souligné Andrey Vlasovskikh, il existe une solution de contournement intéressante pour le cas particulier de l'utilisation de dictionnaires non imbriqués comme clés :
frozenset(a.items())#Can be put in the dictionary instead
Existe-t-il une méthode permettant d'utiliser des objets arbitraires comme clés dans les dictionnaires ?
Ejemplo :
Comment cela pourrait-il être utilisé comme une clé ?
{"a":1, "b":{"c":10}}
Il est extrêmement rare que vous ayez à utiliser quelque chose comme cela dans votre code. Si vous pensez que c'est le cas, envisagez d'abord de modifier votre modèle de données.
Cas d'utilisation exact
Le cas d'utilisation est la mise en cache des appels à une fonction arbitraire de mot-clé seulement. Chaque clé du dictionnaire est une chaîne de caractères (le nom de l'argument) et les objets peuvent être assez compliqués, consistant en des dictionnaires, listes, tuples, etc. superposés.
Problèmes connexes
Ce sous-problème a été séparé de celui de la le problème ici . Les solutions proposées ici traitent du cas où les dictionnaires ne sont pas superposés.