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]] = 'список' # Ошибка, список не хешируем
Таким образом, ключи должны быть неизменяемыми и хешируемыми объектами.