Словарь — изменяемый тип. Какие типы данных мы можем использовать в качестве ключа словаря?

Ключом может быть хешируемый объект с согласованными __hash__ и __eq__. Обычно это числа, строки, bytes, frozenset и кортежи из хешируемых элементов, но не list, dict или set.

Короткий ответ

Что ответить на собеседовании

Ключом может быть хешируемый объект с согласованными hash и eq. Обычно это числа, строки, bytes, frozenset и кортежи из хешируемых элементов, но не list, dict или set.

Подробный разбор

Ответ с пояснениями

Ключом может быть хешируемый объект с согласованными hash и eq. Обычно это числа, строки, bytes, frozenset и кортежи из хешируемых элементов, но не list, dict или set.

Неизменяемость — полезный ориентир, но точное требование именно хешируемость. Кортеж со списком внутри не подходит. Пользовательский класс может быть хешируемым, однако нельзя менять состояние, влияющее на его хеш и равенство, пока объект используется ключом. Равные значения, например 1 и True, обращаются к одной записи словаря, даже если их типы различаются.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее