如何比较两个字典并检查是否有新项目

J87*_*J87 0 python dictionary python-2.7 python-3.x

如何比较两个字典并检查是否有新项目,例如在第二个字典中有CCC,如何比较并获得新变量中的CCC.

dict1 = {'AAA': '0.23444', 'BBB': '0.5343'}
dict2 = {'AAA': '0.34343', 'BBB': '0.3435', 'CCC': '0.53322'}
Run Code Online (Sandbox Code Playgroud)

jpp*_*jpp 7

要查找dict2不存在的键dict1,可以使用以下区别:

res = dict2.keys() - dict1.keys()

{'CCC'}
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过此集访问键值组合:

res_d = {k: dict2[k] for k in res}

{'CCC': '0.53322'}
Run Code Online (Sandbox Code Playgroud)

请注意,在Python 3中,dict.keys()是一个可以直接使用的视图,就像它是一个集合一样,这就是为什么set不需要转换的原因.

您还可以使用字典理解来组合这些步骤:

res_d = {k: dict2[k] for k in dict2.keys() - dict1.keys()}
Run Code Online (Sandbox Code Playgroud)