Я не совсем понимаю ваш пример. Вы имеете в виду что-то вроде этого?
>>> dog = 'dog'
>>> smurf = 'smurf'
>>> d = {(dog, smurf): 40}
>>> d[(dog, smurf)]
40
Кортежи являются неизменяемыми, и если содержащиеся в них объекты также неизменны, то их также можно использовать в качестве ключей словаря.
Но если вы назначите изменяемый объект для dog
, он не будет работать:
>>> dog = ['d', 'o', 'g']
>>> d[(dog, smurf)]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'