2015-07-20 76 views
-3

我想將三個Python字典結合在一起。將三個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版本]

+3

您的預期輸出實際上並不是有效的Python代碼。你有沒有嘗試過自己呢?你卡在哪裏? –

+1

你好,歡迎來到StackOverflow。請花一些時間閱讀幫助頁面,尤其是名爲[「我可以詢問什麼主題?」(http://stackoverflow.com/help/on-topic)和[「我應該問什麼類型的問題避免問?「](http://stackoverflow.com/help/dont-ask)。更重要的是,請閱讀[Stack Overflow問題清單](http://meta.stackexchange.com/q/156810/204922)。您可能還想了解[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –

+0

@MorganThrapp:謝謝。我會通過鏈接。 –

回答

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 

我不得不刪除很多值和測試,因爲沒有在其他字典中引用。既然你使用'...繼續',我假設你有他們的地方,雖然它是好的提供實際工作在問題中的結構。如果你想將缺少的鍵引用默認爲某些東西,比如無,請查看collections模塊中的defaultdict。 https://docs.python.org/2/library/collections.html#collections.defaultdict

+0

感謝您的更新。 –

+0

很高興幫助!如果這個答案適合你,請接受它作爲正確的答案,以便其他用戶可能會看到它的工作,如果他們有類似的問題! – Ryan