You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何找出第二个字典中与第一个字典值不同的键

找出字典中键相同但值不同的键

你当前用的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:47:11