我有兩個collection.Counter()S,這兩個相同的鍵的,所以他們是這個樣子:整合兩個詞典與相同的密鑰和不同的價值觀
01: 3
02: 2
03: 4
01: 8
02: 10
03: 13
我想最終的結果看起來更像這樣:
01: [3, 8]
02: [2, 10]
03: [4, 13]
我該如何去合併它們?
我有兩個collection.Counter()S,這兩個相同的鍵的,所以他們是這個樣子:整合兩個詞典與相同的密鑰和不同的價值觀
01: 3
02: 2
03: 4
01: 8
02: 10
03: 13
我想最終的結果看起來更像這樣:
01: [3, 8]
02: [2, 10]
03: [4, 13]
我該如何去合併它們?
您可以使用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]}
沒有任何這樣做的自動方式,您將不得不手動循環訪問數組,並將它們自己組合到最終的輸出數組中。
如果一本字典沒有相同的密鑰,則可能會遇到一些問題。它會拋出一個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] }
http://stackoverflow.com/a/5946322/594589 – dm03514