Встроенная функция Python hash()

Из документации Python 3

Возвращает хеш-значение объекта (если оно у него есть). Хеш-значения являются целыми числами. Они используются для быстрого сравнения ключей словаря во время поиска в словаре. Числовые значения, которые сравниваются как равные, имеют одинаковое хеш-значение (даже если они разных типов, как в случае с 1 и 1.0).

Введение

Функция hash() возвращает целое число, представляющее хеш-значение объекта. Это в первую очередь используется словарями для быстрого поиска ключей.

В hash() можно передавать только “хешируемые” объекты. Объект является хешируемым, если его хеш-значение никогда не меняется в течение его жизненного цикла. Все встроенные неизменяемые типы Python (такие как строки, числа и кортежи) являются хешируемыми, в то время как изменяемые контейнеры (такие как списки и словари) — нет.

Примеры

# Hash of an integer is the integer itself
print(hash(1))
print(hash(1.0))  # 1 and 1.0 are equal

# Hash of a string (output varies)
print(hash('hello'))

# Hash of a tuple (output varies)
print(hash((1, 2, 3)))

# Trying to hash a list will raise a TypeError
try:
    hash([1, 2, 3])
except TypeError as e:
    print(e)
1
1
-1182655621190490452
529344067295497451
unhashable type: 'list'

Связанные ссылки