Что может быть ключом словаря, что не может и почему?

В Python ключом в словаре или элементом множества может быть любой объект, который является хешируемым (immutable и с определённым методом hash).

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

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

В Python ключом в словаре или элементом множества может быть любой объект, который является хешируемым (immutable и с определённым методом hash).

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

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

В Python ключом в словаре или элементом множества может быть любой объект, который является хешируемым (immutable и с определённым методом hash).

Это значит, что ключи и элементы множества должны:

  • Быть неизменяемыми (например, числа, строки, кортежи с неизменяемыми элементами).
  • Поддерживать метод hash и eq для корректного сравнения.

Примеры допустимых ключей/элементов:

  • int, float, str
  • кортежи (tuple), если все элементы тоже хешируемы

Недопустимые:

  • списки (list), словари (dict), множества (set), так как они изменяемы и не хешируемы.

Пример:

my_dict = {('a', 1): 'value', 42: 'answer'}
my_set = {1, 'hello', (2, 3)}

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

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

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

Подробнее