Sobes.tech
Middle

È possibile usare (1, [1, 2]) come chiave di un dizionario in Python? Perché?

sobes.tech AI

Risposta dell'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)) — кортеж с вложенным кортежем.