Найти в Дзене
Self Study

Ответы на собеседовании по Python: что такое хэш-функция и для чего она нужна?

Введение Целью данной статьи является краткое изложение того, что такое хэш-функция, для чего она используется и как можно получить хэш-значение в Python. Данная статья является логическим продолжением публикации "Какие вопросы могут задать на собеседовании по Python? Часть 1". Определение Хэш-функция - это функция, которая принимает на вход какие-либо данные (например, строки) и возвращает число по некоторому заданному алгоритму. [1] Если эта функция является идеальной - то для каждого переданного на вход функции значения будет возвращено число, отличное от ранее полученных. [2] В противном случае, будут возникать коллизии, когда для различных входных данных возвращается одно и то же число. Назначение Назначением хэш-функций является возможность помещения некоторого элемента (например, строки) в хэш-таблицу, на основе которых реализованы, например, словари и множества в Python. [3] Получение хэш-значения Для получения хэш-значения в Python используется встроенная функция hash(), рабо
Оглавление

Введение

Целью данной статьи является краткое изложение того, что такое хэш-функция, для чего она используется и как можно получить хэш-значение в Python.

Данная статья является логическим продолжением публикации "Какие вопросы могут задать на собеседовании по Python? Часть 1".

Определение

Хэш-функция - это функция, которая принимает на вход какие-либо данные (например, строки) и возвращает число по некоторому заданному алгоритму. [1] Если эта функция является идеальной - то для каждого переданного на вход функции значения будет возвращено число, отличное от ранее полученных. [2] В противном случае, будут возникать коллизии, когда для различных входных данных возвращается одно и то же число.

Назначение

Назначением хэш-функций является возможность помещения некоторого элемента (например, строки) в хэш-таблицу, на основе которых реализованы, например, словари и множества в Python. [3]

Получение хэш-значения

Для получения хэш-значения в Python используется встроенная функция hash(), работающая со встроенными типами, а для работы с пользовательскими типами, необходима реализовать метод __hash__. [1]

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

Примеры

Примеры использования функции hash
Примеры использования функции hash
Сравнение значений
Сравнение значений

Поскольку, в первом случае, все три элемента равны между собой, то и их хэш-значения оказываются одинаковыми. Напротив, во втором случае, мы получили разные хэш-значения, поскольку сравнение этих элементов на равенство является ложным.

Заключение

Всем спасибо. Ставьте лайки и подписывайтесь на мой канал.

Смотрите, также:
1. "Ответы на собеседовании по Python: изменяемые и неизменяемые типы данных"
2. "Какие вопросы могут задать на собеседовании по Python? Часть 2"

Источники

1. Адитья Бхаргава, "Грокаем алгоритмы. Иллюстративное пособия для программистов и любопытствующих"
2. Википедия. Хэширование
3. Лучано Ромальо, "Python. К вершинам мастерства"
4. Документация Python. Функция hash().