Sobes.tech
Junior — Middle
90

Que tipos de dados ou objetos são adequados para serem usados como chave numa estrutura de dados do tipo dicionário?

Empresas quando solicitadas
Баланс-ПлатформаБаланс-Платформа

Resposta da IA

sobes.tech IA

В 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]] = 'список'  # Ошибка, список не хешируем

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