类型错误:不可哈希 类型:'list'查找两个词典的交集,其值是列表



我有字典aba看起来像这样:

{
'q1': ['d5', 'd6', 'd90', 'd91', 'd119', 'd144', 'd181', 'd399'],
'q2': ['d236', 'd166'],
'q3': ['d552', 'd401', 'd1297', 'd1296'],
'q4': ['d99', 'd115', 'd257', 'd258'],
'q5': ['d20', 'd56', 'd57', 'd58', 'd19']
}

b看起来像

{
'q1': ['d707',
'd144',
'd542',
'd329',
'd395',
'd730',
'd158',
'd77',
'd486',
'd623'],
'q2': ['d189',
'd575',
'd179',
'd1182',
'd160',
'd188',
'd660',
'd1061',
'd173',
'd185'],
'q3': ['d730',
'd329',
'd1066',
'd14',
'd163',
'd401',
'd753',
'd44',
'd92',
'd368'],
'q4': ['d798',
'd97',
'd99',
'd927',
'd1195',
'd131',
'd257',
'd315',
'd151',
'd193'],
'q5': ['d189',
'd1347',
'd423',
'd1040',
'd174',
'd1231',
'd197',
'd721',
'd1307',
'd1352']
}

我想找到两者的重叠,比如在我尝试dict(ret_docs.items() & reljudges.items())的字典之间,我会为每个共享键找到匹配的值元素,但这在标题中返回了错误。

{key: [item for item in items if item in second.get(key, [])]
for key, items in first.items() if key in second}

想明白了。inter是两个dict的交集:

inter = {}
for key, val in b.items():
inter[key] = []
for i in val:
if i in inter[key]:
a[key].append(i)