Sobes.tech
Junior — Middle
65

Какие типы данных или объекты подходят для использования в качестве ключа в структуре данных типа словарь?

Companies where asked
Баланс-ПлатформаБаланс-Платформа

Answer from AI

sobes.tech AI

В Python ключами словаря могут быть только неизменяемые (immutable) и хешируемые объекты. Это значит, что ключ должен иметь метод __hash__() и быть сравнимым через __eq__().

Подходящие типы ключей:

  • Числа (int, float, bool)
  • Строки (str)
  • Кортежи (tuple), если все элементы кортежа тоже хешируемы
  • frozenset (неизменяемое множество)
  • Пользовательские объекты с определёнными методами __hash__ и __eq__

Нельзя использовать изменяемые типы, например:

  • Списки (list)
  • Множества (set)
  • Словари (dict)

Пример:

my_dict = {}
my_dict[42] = 'число'
my_dict['key'] = 'строка'
my_dict[(1, 2)] = 'кортеж'

# my_dict[[1, 2]] = 'список'  # Ошибка, список не хешируем

Таким образом, ключи должны быть неизменяемыми и хешируемыми объектами.