Ответ
В Python множество (set) может содержать только хешируемые (неизменяемые) объекты. Это связано с тем, что множества используют хеш-таблицы для хранения элементов, а хеш неизменяемого объекта должен оставаться постоянным.
Допустимые типы данных:
- Числа (
int,float,complex) - Строки (
str) - Кортежи (
tuple), если все их элементы тоже хешируемы frozenset(неизменяемое множество)
Недопустимые:
- Списки (
list) - Словари (
dict) - Множества (
set) - Другие изменяемые объекты
Пример:
valid_set = {1, "hello", (2, 3), frozenset([4, 5])} # Работает
invalid_set = {[1, 2]} # TypeError: unhashable type: 'list'