如何比较两个Python字典并提取其中的新增键值对?
如何比较两个字典并提取新增条目?
嘿,我来给你一步步搞定这个问题!先看你给出的示例字典:
dict1 = {'AAA': '0.23444', 'BBB': '0.5343'} dict2 = {'AAA': '0.34343', 'BBB': '0.3435', 'CCC': '0.53322'}
我们的目标是找出dict2里新增的条目(也就是dict1里没有的键值对),并把它们存入新变量。这里有两种实用的方法:
方法一:用集合差集快速搞定(推荐)
字典的keys()方法可以返回所有键的视图,我们可以把它转成集合后做差集运算,直接得到dict2独有的键:
# 获取dict2比dict1多出来的键 new_keys = dict2.keys() - dict1.keys() # 根据这些键提取对应的键值对,存入新变量 new_entries = {k: dict2[k] for k in new_keys}
运行后,new_entries的值就是{'CCC': '0.53322'},完美符合你的需求!这种方法效率很高,集合操作在处理大量数据时比循环快很多。
方法二:遍历检查(适合新手理解)
如果你想更直观地看到每一步的判断,可以用循环遍历dict2的所有键值对,判断当前键是否不在dict1里:
new_entries = {} for key, value in dict2.items(): # 只保留dict1中没有的键值对 if key not in dict1: new_entries[key] = value
这个方法逻辑直白,适合刚接触字典操作的同学理解,结果和上面的方法完全一致。
小补充
如果之后你还需要对比值有变化的条目(比如dict1和dict2里都有AAA,但值不一样),可以再扩展判断条件:
changed_entries = {k: dict2[k] for k in dict1 if dict1[k] != dict2[k]}
不过这次你的需求是新增条目,前面两种方法就足够啦~
内容的提问来源于stack exchange,提问作者J87
相关产品推荐
相关产品推荐

