Назад к вопросам
Билайн
Junior — Middle
83
Возможно ли использовать кортеж в качестве ключа в словаре Python, и при каких условиях это допустимо?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Да, в Python кортеж можно использовать в качестве ключа словаря, если он является неизменяемым (immutable). Ключи словаря должны быть хешируемыми, то есть иметь неизменяемое состояние и реализовывать метод __hash__.
Кортежи сами по себе неизменяемы, поэтому подходят для ключей, если все их элементы тоже хешируемы. Например:
my_dict = { (1, 2): "value", ("a", "b"): 42 }
print(my_dict[(1, 2)]) # Выведет: value
Однако, если кортеж содержит изменяемые объекты, например списки, он не будет хешируемым и использоваться как ключ нельзя:
key = (1, [2, 3]) # Список внутри кортежа
my_dict = {}
my_dict[key] = "test" # Ошибка TypeError: unhashable type: 'list'
Итого, кортеж можно использовать как ключ словаря, если он состоит только из хешируемых элементов.