Sobes.tech
Junior — Middle
137

É possível usar uma tupla como chave num dicionário Python, e sob que condições isso é permitido?

Empresas quando solicitadas
БилайнБилайн

Resposta da IA

sobes.tech IA

Да, в 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'

Итого, кортеж можно использовать как ключ словаря, если он состоит только из хешируемых элементов.