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