Cependant, une clé d'un dictionnaire Python doit être hasardeuse. Un objet hashable signifie que l'objet est immuable et peut produire une valeur de hachage unique.
Par conséquent, l'utilisation d'un objet incompétent comme clé d'un dictionnaire entraînera une erreur.
Discutons de la façon dont nous pouvons résoudre cette erreur.
Exemple d'erreur
Considérez le code ci-dessous qui illustre comment ce type d'erreur se produit.
développeurs = "jeux": 200, "base de données": 100, "full_stack": 500Dans l'exemple ci-dessus, nous commençons par définir un dictionnaire qui contient le type de développeur et le nombre total.
Nous créons un dictionnaire d'employés qui prend le dictionnaire du développeur comme la clé de la deuxième partie.
Étant donné qu'un dictionnaire est incompétent, Python ne peut pas l'utiliser comme clé d'un dictionnaire.
Python Vérifiez si l'objet est présentable
La question vient, comment puis-je savoir si un objet est hashable ou non? Dans Python, vous pouvez utiliser la fonction de hachage pour déterminer si un objet est présentable.
Un exemple est comme indiqué:
>>> Hash ("clé")Si un objet est présentable, il doit renvoyer un hachage unique comme indiqué dans l'exemple ci-dessus. Puisqu'une chaîne est hachable, elle renvoie un hachage unique.
Si vous essayez la même opération sur un dictionnaire ou une liste, vous obtiendrez une erreur comme indiqué:
>>> Hash ([1,2,3,4,5])Il n'est pas hashable car une liste est mutable, comme le montre l'erreur ci-dessus.
Correction: TypeError: Type incompétent: «Dict»
Si vous souhaitez utiliser un dictionnaire comme clé pour un autre dictionnaire, vous pouvez le faire en le convertissant d'abord en tuple.
Un tuple est présentable comme indiqué dans l'exemple ci-dessous:
>>> Hash ((1,2,3,4,5))Résolvons notre première erreur en convertissant le dictionnaire du développeur en tuple:
>>> développeurs = Tuple (développeurs)Une fois que nous l'avons converti en tuple, nous pouvons l'utiliser comme clé du dictionnaire comme indiqué:
>>> employés = développeurs: 800Correction 2
Une autre solution consiste à utiliser le dictionnaire comme valeur. Par exemple, nous pouvons utiliser le dictionnaire du développeur comme valeur pour le dictionnaire des employés.
Prenez l'illustration du code ci-dessous:
>>> développeurs = "jeux": 200, "base de données": 100, "full_stack": 500Dans ce cas, le code ne renvoie pas d'erreur car nous utilisons le dictionnaire comme valeur pour un nouveau dictionnaire.
Utilisation d'une boucle pour
Une autre méthode non conventionnelle consiste à utiliser une boucle pour. Vous pouvez itérer sur chaque clé et évaluer la paire d'un dictionnaire et les ajouter à un nouveau dictionnaire.
Considérez l'exemple ci-dessous:
>>> développeurs = "jeux": 200, "base de données": 100, "full_stack": 500Dans ce cas, nous utilisons une boucle pour itérater les articles du dictionnaire des développeurs et les ajoutons au dict des employés.
Fermeture
Cet article a exploré trois méthodes de fixation de l'erreur «TypeError: Undelable Type:« Dict »» dans Python.