TypeError:unhashable type: ‘list’
TypeError:unhashable type: ‘list’ signifie généralement que vous essayez d’utiliser une liste comme argument de hachage. Cela signifie que lorsque vous essayez de hacher un objet non masquable, il en résultera une erreur. Par ex. lorsque vous utilisez une liste comme clé dans le dictionnaire, cela ne peut pas être fait car les listes ne peuvent pas être hachées. La façon standard de résoudre ce problème consiste à convertir une liste en tuple.
exemple
sortie
Cette erreur montre que la clé my_dict est List et que List n’est pas un type hachable en Python. Les clés de dictionnaire doivent être des types immuables et list est un type mutable.
Correction: Convertir la liste en un tuple
Vous devrez changer votre liste en tuples si vous souhaitez les mettre comme clés dans votre dictionnaire.
sortie
Le hash() est une méthode python intégrée, utilisée pour renvoyer un numéro unique. Cela peut être appliqué à tout objet défini par l’utilisateur qui ne sera pas modifié une fois initialisé. Cette propriété est principalement utilisée dans les clés de dictionnaire.
Exemples d’objets non masquables:
Tuple et List
Bien que les tuples puissent sembler similaires aux listes, ils sont souvent utilisés dans différentes situations et à des fins différentes. Les tuples sont immuables et contiennent généralement une séquence hétérogène d’éléments accessibles via un déballage ou une indexation. Les listes sont mutables, et leurs éléments sont généralement homogènes et sont accessibles en itérant sur la liste.
Hachage
Le hachage est un concept en informatique utilisé pour créer des structures de données pseudo-aléatoires hautes performances où une grande quantité de données doit être stockée et accessible rapidement. Les objets immuables, ou les objets qui ne peuvent pas être modifiés, sont hashables et ils ont une seule valeur unique qui ne changera jamais. Une fonction de hachage est une fonction qui prend un objet, disons une chaîne telle que « Java » et renvoie un code de taille fixe, supposons que la valeur de retour soit un entier.