Встречается на собеседованиях • сегодня

Какая связь между hash-функцией и изменяемостью/неизменяемостью типов

Хеш-функция требует, чтобы объект был неизменяемым, так как хеш используется в словарях и множествах для быстрого доступа. Если объект изменится после добавления в коллекцию, его хеш тоже изменится, что приведёт к ошибкам поиска.

Пример:

python
# Кортеж (неизменяемый) — хешируемый
hash((1, 2))  # Работает

# Список (изменяемый) — не хешируемый
hash([1, 2])  # TypeError: unhashable type: 'list'

Неизменяемые типы (int, str, tuple, frozenset) реализуют __hash__, а изменяемые (list, dict, set) — нет. Если переопределить __hash__ для изменяемого класса, это нарушит логику работы словарей.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы