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