Я хотел бы проверить пересечение двух словарей. Если я сделаю это, я получу именно то, что ожидал:
dict1 = {'x':1, 'y':2, 'z':3}
dict2 = {'x':1, 'y':2, 'z':4}
set(dict1.items()).intersection(dict2.items())
>> {('x', 1), ('y', 2)}
Однако, если элементы в словаре не подлежат изменению, я получаю сообщение об ошибке.
dict1 = {'x':{1,2}, 'y':{2,3}, 'z':3}
dict2 = {'x':{1,3}, 'y':{2,4}, 'z':4}
TypeError Traceback (most recent call
last)
<ipython-input-56-33fdb931ef54> in <module>
----> 1 set(dict1.items()).intersection(dict2.items())
TypeError: unhashable type: 'set'
Конечно, я получаю ту же ошибку для кортежей и списков, так как они также не могут быть хэшируемыми.
Существует ли обходной путь или существующий класс, который я могу использовать для проверки пересечения неисчерпаемых значений словаря?