Найти в Дзене
5 подписчиков

Хешируемый - англ. hashable — это объект или данные, которые могут быть преобразованы в уникальное (или почти уникальное) значение фиксированной длины, называемое хешем или хеш-кодом, с помощью специальной математической функции (хеш-функции).

Хешируемые объекты должны быть неизменяемыми и иметь стабильный хеш на протяжении своего существования, чтобы их можно было использовать как ключи в словарях (dictionaries) или элементы в множествах (sets) в языках программирования, таких как Python.

Основные характеристики хешируемых объектов:

Неизменяемость: Сам объект не должен меняться после создания, иначе его хеш станет недействительным.
Стабильный хеш: Равные объекты должны иметь одинаковый хеш, а неравные — с высокой вероятностью разные хеши.
Примеры: Целые числа, строки, кортежи (если все их элементы хешируемые) являются хешируемыми. Списки, словари и множества — нет, поскольку они изменяемы.

Зачем это нужно:

Быстрый поиск: Хеш-функции позволяют мгновенно находить элементы в больших наборах данных без полного перебора.
Проверка целостности данных: Сравнение хешей файла до и после передачи доказывает, не был ли он изменён.
Безопасное хранение паролей: Пароли хранятся в виде хешей, а не в открытом виде, что затрудняет их кражу.
Цифровые подписи: Хеш сообщения подписывается и проверяется, что подтверждает подлинность и неизменность документа.

Пример в Python:

hash("hello") работает, так как строка хешируема.
hash([1, 2]) вызовет ошибку, так как список изменяем и не хешируем.
hash((1, 2)) работает (кортеж хешируем).
hash((1, [2])) вызовет ошибку (кортеж содержит изменяемый список)
1 минута