将三个Python词典组合在一起

时间:2015-07-20 14:18:59

标签: python python-2.7 dictionary

我正在尝试将三个Python词典组合在一起。

有点看起来如下:

dict1 = {'key1' : ['value1','value2','value3'] , 'key2' : ['value1','value5','value6']}
dict2 = {'value1' : ['test1','test1','test2','test3','test4'], 'value2': ['test1','test2','test2','test5','test6']........continues}
dict3 = {'test1' : [0,1,4,5], 'test2' : '[3,1,2,0]', test3:[7,8,1,3,4].... continues}

我想创建一个如下所示的字典:

mainDict = {'key1':[  {'value1' : { 'test1' :[0,1,4,5],'test2' : [3,1,2,0],'test3' :[7,8,1,3,4]...continues} } ]}

如何将3个词典合并为一个?

[我正在使用python 2.7版本]

1 个答案:

答案 0 :(得分:0)

这可以通过简单地循环遍历词典并为每个值分配子词典来实现。

finaldict = {}
for key in dict1.keys():
    finaldict[key] = {}
    for key2 in dict1[key]:
        finaldict[key][key2] = {}
        for key3 in dict2[key2]:
            finaldict[key][key2][key3] = dict3[key3]
print finaldict

我不得不删除很多值和测试,因为其他字典中没有引用。因为你使用'... continue'我假设你把它们放在某个地方,尽管提供实际在问题中工作的结构是好的。如果您希望缺少的键引用默认为None,请查看collections模块中的defaultdict。 https://docs.python.org/2/library/collections.html#collections.defaultdict