Почему список нельзя использовать в качестве ключа словаря?

Ключ словаря Python должен быть хешируемым, а список изменяем и не поддерживает hash. Изменение ключа нарушило бы поиск в хеш-таблице.

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

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

Ключ словаря Python должен быть хешируемым, а список изменяем и не поддерживает hash. Изменение ключа нарушило бы поиск в хеш-таблице.

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

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

Ключ словаря Python должен быть хешируемым, а список изменяем и не поддерживает hash. Изменение ключа нарушило бы поиск в хеш-таблице.

Словарь использует хеш и сравнение равенства, чтобы находить запись. Для корректного ключа хеш должен оставаться стабильным на протяжении его использования, а равные ключи обязаны иметь одинаковые хеши.

Вместо списка можно использовать tuple, если все его элементы хешируемы, или frozenset, если порядок не важен. Кортеж, содержащий список, тоже не подходит. Неизменяемость контейнера сама по себе не гарантирует хешируемость его содержимого.

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

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

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

Подробнее