将一本嵌套字典的值更新为另一本具有字典列表的字典

问题描述

说我们有两个嵌套的字典:

dict1={'s1':{'A':{'C':'3','D':'4'},'B':{'E':'5','F':'6'}}}

dict2={'s1': [{'C':'3a','D':'4a'},{'C':'3b','D':'4b'}],{'E':'5a','F':'6a'}}}

我可以基于dict2将键中的dict1中的值替换为值

dict1['E']=dict2['E']

这将导致..

dict1={'s1':{'A':{'C':'3','B':{'E':'5a','F':'6'}}}

现在,我想在dict1中找到C和D,并替换为dict2中的C和D列表 输出应为:

dict1={'s1':{'A':[{'C':'3a','F':'6'}}}

不影响dict 1中的原始键A和B 我们还可以创建一个新的字典来复制dict1并进行修改。 但dict1的结构应保持不变

解决方法

可能您没有正确编写dict2,它既不是字典也不是集合。也许这(dict2={'s1':[{'C':'3a','D':'4a'},{'C':'3b','D':'4b'}],'B': {'E':'5a','F':'6a'}}是您的意思。

如果此假设正确,则可以通过以下方式在dict1中更改键A的值:

dict1['s1']['A'] = dict2['s1']
print(dict1)

结果

{'s1': {'A': [{'C': '3a','D': '4a'},{'C': '3b','D': '4b'}],'B': {'E': '5','F': '6'}}}