2013-07-18 72 views
2

我有兩個collection.Counter()S,這兩個相同的鍵的,所以他們是這個樣子:整合兩個詞典與相同的密鑰和不同的價值觀

01: 3 
02: 2 
03: 4 

01: 8 
02: 10 
03: 13 

我想最終的結果看起來更像這樣:

01: [3, 8] 
02: [2, 10] 
03: [4, 13] 

我該如何去合併它們?

+0

http://stackoverflow.com/a/5946322/594589 – dm03514

回答

4

您可以使用dict comprehension

dict1 = {1: 3, 2: 2, 3: 4 } 
dict2 = {1: 8, 2: 10, 3: 13 } 
dict3 = { k: [ dict1[k], dict2[k] ] for k in dict1 } 
# Result: 
# dict3 = {1: [3, 8], 2: [2, 10], 3: [4, 13]} 
0

沒有任何這樣做的自動方式,您將不得不手動循環訪問數組,並將它們自己組合到最終的輸出數組中。

0

如果一本字典沒有相同的密鑰,則可能會遇到一些問題。它會拋出一個KeyField錯誤,否則這將工作。

d1 = {01 : 3, 02: 2, 03: 4} 
d2 = {01: 8, 02: 10, 03: 13} 
d3 = {} 
for key in d1.keys(): 
    d3[key] = [d1[key], d2[key]] 

和D3將包含

{ 1 : [3, 8], 2: [2, 10], 3: [4, 13] } 
相關問題