Ответ
Ключи в словаре Python должны быть хешируемыми и неизменяемыми (immutable). Это значит, что ключ должен иметь метод __hash__(), который возвращает одно и то же значение на протяжении всего времени жизни объекта, и он не должен изменяться.
Допустимые типы ключей:
- Числа (
int,float) - Строки (
str) - Кортежи (
tuple), если они содержат только неизменяемые элементы frozenset
Недопустимые типы ключей:
- Списки (
list) - Множества (
set) - Словари (
dict) - Другие изменяемые объекты
Пример:
valid_dict = {
1: 'number',
'key': 'string',
(1, 2): 'tuple'
}
invalid_dict = {
[1, 2]: 'list' # TypeError: unhashable type: 'list'
}