ключи словаря должны быть хэшируемыми (или лучше: неизменяемыми). set
объекты изменяемые (как списки)
вместо них можно использовать frozenset
вместо
dictionary = {
'a' : [[1,2,3],[4,5,6],[7,8,9]],
'b' : 2,
frozenset({100}) : 3
}
A frozenset
set
, который неизменен. Это встроенный тип. Теперь вы можете получить значение, даже передав фрозенцет из списков / кортежей с повторяющимися записями / любым порядком в списке, и он все равно найдет значение
>>> dictionary[frozenset((100,100))]
3