Хеш-функция при работе с множествами в Python используется для сопоставления элемента с местом (слотом) в хэш-таблице. www.herevego.com
Процесс происходит в несколько шагов: habr.com
- Вычисление хэша для элемента. habr.com Для этого Python получает хэш-код для элемента. habr.com Например, для строки «Mon» в множестве {'Mon', 'Tue', 'Wed', 'Thu', 'Fri'} хэш-код будет вычислен с использованием случайной соли. habr.com
- Проверка хэш-таблицы на индекс, полученный из хэша. habr.com Чтобы найти индекс, Python берёт хэш-код по модулю размер таблицы. habr.com Иными словами, это остаток от деления значения хэша на значение размера таблицы. habr.com
- Проверка наличия элемента. www.herevego.com Если найден пустой слот, то элемент отсутствует, поэтому Python возвращает False. habr.com В противном случае, когда и хэш-код, и значения искомого элемента совпадают с элементом в хэш-таблице, возвращается True. habr.com
Если два объекта сравниваются между собой, их хэш-коды также должны быть одинаковыми, иначе алгоритм хэш-таблицы не работает. habr.com
Для элементов множества важны свойства хэшируемости: они должны реализовывать соответствующие методы hash и eq. habr.com