用同一个键合并两个词典

2024-05-13 14:46:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面两个字典,我想合并。我想合并在同一个键上,我想保留两个字典的值。 我使用了dict1.update(dict2),但它替换了第2个字典到第1个字典的值。在

u'dict1', {160: {u'na': u'na'}, 162: {u'test_': u'qq', u'wds': u'wew'}, 163: {u'test_env': u'test_env_value', u'env': u'e'}, 159: {u'no' : u'test_no'}

u'dict2', {160: {u'naa': u'na'}, 162: {u'envi_specs': u'qq', u'wds': u'wew'}, 163: {u'test_env': u'test_env_value', u'ens': u's'}}

我得到了什么?在

^{pr2}$

我需要什么

{160: {u'naa': u'na', u'na': u'na'}, 162: {u'envi_specs': u'qq', u'wds': u'wew', u'test_': u'qq'}, 163: {u'test_env': u'test_env_value', u'ens': u's', u'env': u'e'}}

我跟踪了merging "several" python dictionaries,但我有两个不同的字典需要合并。请帮忙。。。在


Tags: notestenv字典valueqqnaenvi
1条回答
网友
1楼 · 发布于 2024-05-13 14:46:56

循环dict1中的键,并从dict2检索相应的值,然后更新-

for k in dict1:
     dict1[k].update(dict2.get(k, {})) # dict1.get(k).update(dict2.get(k, {}))

^{pr2}$

这里,我使用dict.get,因为它允许您指定在k不作为dict2中的键存在时返回的默认值。在本例中,默认值是空字典{},调用dict.update({})什么也不做(也不会导致任何问题)。在

相关问题 更多 >