Middle
54
Можно ли использовать (1, [1, 2]) как ключ словаря в Python? Почему?
Ответ от нейросети
sobes.tech AI
В Python ключом словаря может быть только неизменяемый (immutable) объект, который поддерживает хеширование (имеет метод __hash__). Кортеж (1, [1, 2]) содержит список [1, 2], который является изменяемым и не хешируемым объектом. Поэтому такой кортеж не может быть ключом словаря, так как при попытке использовать его в качестве ключа возникнет ошибка TypeError: unhashable type: 'list'.
Пример:
key = (1, [1, 2])
d = {}
d[key] = 'value' # TypeError: unhashable type: 'list'
Если нужно использовать кортеж как ключ, все его элементы должны быть хешируемыми, например, (1, (1, 2)) — кортеж с вложенным кортежем.