Назад к вопросам
Junior
90
questionbank

Какими могут быть ключи в словарях в Python?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Ключами в словарях Python могут быть любые неизменяемые (hashable) объекты.

Неизменяемые типы данных включают:

  • Целые числа (int)
  • Числа с плавающей точкой (float)
  • Строки (str)
  • Кортежи (tuple), содержащие только неизменяемые элементы
  • Булевы значения (bool)
  • NoneType (None)
  • Frozenset (frozenset), содержащий только неизменяемые элементы

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

# Допустимые ключи
my_dict = {
    1: "один",
    3.14: "пи",
    "ключ": "значение",
    (1, 2): "кортеж",
    True: "истина",
    None: "нет",
    frozenset({1, 2}): "неизменяемое множество"
}

Неизменяемые объекты обладают хешем, который используется для быстрого поиска в словаре.

Изменяемые типы данных, такие как списки (list), множества (set) и другие словари (dict), не могут быть ключами словаря, поскольку их содержимое может меняться, что нарушило бы целостность хеша.

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

# Недопустимые ключи (вызовет TypeError)
# my_dict = {
#     [1, 2]: "список",
#     {1, 2}: "множество",
#     {"a": 1}: "другой словарь"
# }