Python 3.x python中是否有用于合并两个嵌套字典值的代码?

Python 3.x python中是否有用于合并两个嵌套字典值的代码?,python-3.x,Python 3.x,我有嵌套字典,希望得到合并的值 d1=dict() d2=dict() d1 = {1: {'x1':('y1')}, 2: 'y1'} d2 = {1: {'x1':('y3')}, 2: 'y2'} 我希望得到以下结果: 'x1':('y1','y3') ('y1','y2') 但是要找到结果 ({'x1': 'y1'}, {'x1': 'y3'}) ('y1', 'y2') 如何获得预期的结果?您可以通过在合并时检查值(如果值是嵌套字典)来实现此目的。使用对相同函数的重复调用

我有嵌套字典,希望得到合并的值

d1=dict() 
d2=dict() 
d1 = {1: {'x1':('y1')}, 2: 'y1'} 
d2 = {1: {'x1':('y3')}, 2: 'y2'}
我希望得到以下结果:

'x1':('y1','y3') ('y1','y2') 
但是要找到结果

({'x1': 'y1'}, {'x1': 'y3'}) ('y1', 'y2')

如何获得预期的结果?

您可以通过在合并时检查值(如果值是嵌套字典)来实现此目的。使用对相同函数的重复调用合并它们,如下所示:

mergeTwoDic(d1[key],d2[key]) if isinstance(d1[key],dict) and isinstance(d2[key],dict) else (d1[key],d2[key])
所以最终的解决方案如下

d1=dict() 
d2=dict() 
d1 = {1: {'x1':('y1')}, 2: 'y1'} 
d2 = {1: {'x1':('y3')}, 2: 'y2'}

def mergeTwoDic (d1,d2):
    result = {};
    for key in d1.keys() | d2.keys():
        if key in d1 and key in d2:
            result[key] = mergeTwoDic(d1[key],d2[key]) if isinstance(d1[key],dict) and isinstance(d2[key],dict) else (d1[key],d2[key])
        else:
            result[key] = d1.get(key) or d2.get(key)

    return result



print(mergeTwoDic(d1,d2).values())
输出:

[{'x1': ('y1', 'y3')}, ('y1', 'y2')]

请注意,正如您所写,所需的输出不是有效的python格式。它应该是
[{'x1':('y1','y3')},('y1','y2')]
或者
({'x1':('y1','y3')},('y1','y2'))
或者可能是
{'x1':('y1','y3'),2:('y1','y2')