如何找出第二个字典中与第一个字典值不同的键
找出字典中键相同但值不同的键
你当前用的diff = set(dict2) - set(dict1)只能得到dict2独有的键,没法找出那些键同时存在于两个字典但对应值不同的项。要得到你期望的{'c3', 'c4'},可以用下面的方法:
方法一:集合推导式
直接遍历两个字典共有的键,筛选出值不同的键:
dict1 = {'c1': 'Iran', 'c2': 'India', 'c3': 'Iraq', 'c4': 'Qatar'} dict2 = {'c1': 'Iran', 'c2': 'India', 'c3': 'Iraqs','c4': 'Qeter'} diff_keys = {key for key in dict1 if key in dict2 and dict1[key] != dict2[key]} print(diff_keys) # 输出: {'c3', 'c4'}
方法二:遍历+条件判断
如果需要更直观的步骤,也可以用循环实现:
dict1 = {'c1': 'Iran', 'c2': 'India', 'c3': 'Iraq', 'c4': 'Qatar'} dict2 = {'c1': 'Iran', 'c2': 'India', 'c3': 'Iraqs','c4': 'Qeter'} diff_keys = set() for key in dict1: if key in dict2 and dict1[key] != dict2[key]: diff_keys.add(key) print(diff_keys) # 输出: {'c3', 'c4'}
如果要同时包含dict2独有的键和值不同的键,只需要把两种情况合并:
diff_keys = {key for key in dict2 if key not in dict1 or dict1[key] != dict2[key]}
内容的提问来源于stack exchange,提问作者Behseini
相关产品推荐
相关产品推荐

