如何从两个dict中找到具有不同值的公共密钥

时间:2017-05-22 17:42:54

标签: python dictionary

我正在尝试获取两个词典中值不同的键 e.g:

items1=['a','b','c']
price1=[1,2,3]
dictA= dict(zip(items1, price1))

items2=['a','b']
price2=[1,3]
dictB=dict(zip(items2,price2))

所以区别在于[' b']因为这个键是唯一的区别

我尝试使用set(dictA.items()).symmetric_difference(dictB.items()),但这也是返回键:值{' c':3}

2 个答案:

答案 0 :(得分:2)

迭代公用密钥,并在dictAdictB中删除具有匹配值的密钥:

In [3]: {key for key in dictA.keys() & dictB if dictA[key] != dictB[key]}
Out[3]: {'b'}

答案 1 :(得分:1)

你必须在交叉路口进行迭代。

delta = [k for k in (set(dictA) & set(dictB)) if (dictB[k] - dictA[k])]