如何比较两个dict并检查是否有新项目,例如在第二个dict中有CCC,如何比较并获得新变量中的CCC。
dict1 = {'AAA': '0.23444', 'BBB': '0.5343'}
dict2 = {'AAA': '0.34343', 'BBB': '0.3435', 'CCC': '0.53322'}
答案 0 :(得分:7)
要查找dict2
中未在dict1
中出现的密钥,您可以使用差异:
res = dict2.keys() - dict1.keys()
{'CCC'}
然后,您可以通过此设置访问键值组合:
res_d = {k: dict2[k] for k in res}
{'CCC': '0.53322'}
请注意,在Python 3中,dict.keys()
是一个可以直接使用的视图,就像它是一个集合一样,这就是为什么不需要转换为set
的原因。
您还可以使用词典理解来组合这些步骤:
res_d = {k: dict2[k] for k in dict2.keys() - dict1.keys()}
答案 1 :(得分:0)
'''
OP wants to compare too dicts. If there is a different (new) key in one of the
dicts, he wants to add that value to dict1
'''
dict1 = {'AAA': '0.23444', 'BBB': '0.5343'}
dict2 = {'AAA': '0.34343', 'BBB': '0.3435', 'CCC': '0.53322'}
for key, value in dict2.items():
if key not in dict1:
dict1[key] = value
print(dict1)
我们可以迭代第二个字典中的每个键,如果它没有出现在第一个字典中,我们可以在最后添加它。这是输出:
{'AAA': '0.23444', 'BBB': '0.5343', 'CCC': '0.53322'}