La fonction intégrée Python hash()
Extrait de la documentation Python 3
Retourne la valeur de hachage de l'objet (s'il en a une). Les valeurs de hachage sont des entiers. Elles sont utilisées pour comparer rapidement les clés de dictionnaire lors d'une recherche dans un dictionnaire. Les valeurs numériques qui se comparent de manière égale ont la même valeur de hachage (même si elles sont de types différents, comme c'est le cas pour 1 et 1.0).
Introduction
La fonction hash() retourne un entier représentant la valeur de hachage d’un objet. Ceci est principalement utilisé par les dictionnaires pour rechercher rapidement des clés.
Seuls les objets “hashables” (pouvant être hachés) peuvent être passés à hash(). Un objet est hashable si sa valeur de hachage ne change jamais pendant son cycle de vie. Tous les types immuables intégrés de Python (comme les chaînes de caractères, les nombres et les tuples) sont hashables, tandis que les conteneurs mutables (comme les listes et les dictionnaires) ne le sont pas.
Exemples
# Le hachage d'un entier est l'entier lui-même
print(hash(1))
print(hash(1.0)) # 1 et 1.0 sont égaux
# Hachage d'une chaîne (le résultat varie)
print(hash('hello'))
# Hachage d'un tuple (le résultat varie)
print(hash((1, 2, 3)))
# Tenter de hacher une liste lèvera une TypeError
try:
hash([1, 2, 3])
except TypeError as e:
print(e)
1
1
-1182655621190490452
529344067295497451
unhashable type: 'list'