> Как Python определяет уникальность объекта для ключей словаря (Python)

Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: Группа компаний OPEN, ARX

Стек: Python

> Пример ответа

Python определяет уникальность ключей словаря через два механизма: хеш-функцию (__hash__) и проверку равенства (__eq__). При добавлении ключа вычисляется его хеш (целое число), которое используется для быстрого поиска в хеш-таблице. Если два объекта имеют одинаковый хеш (коллизия), Python сравнивает их через __eq__, чтобы убедиться, что они действительно равны. Если хеши разные, объекты считаются разными. Для неизменяемых типов (строки, числа, кортежи) хеш вычисляется на основе их содержимого, и они могут быть ключами. Изменяемые объекты (списки, словари) не имеют хеша по умолчанию (__hash__ = None), поэтому их нельзя использовать как ключи, так как изменение содержимого нарушило бы уникальность. Пользовательские классы могут переопределить __hash__ и __eq__ для кастомной логики, но важно соблюдать правило: если a == b, то hash(a) == hash(b).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью