這是迄今爲止我試圖查看具有相同密鑰的三個字典並添加其相應值的代碼。如果沒有密鑰存在,我希望代碼添加一個零。在Python中合併相同密鑰的字典
#!/usr/bin/env python
import sys
from operator import itemgetter
import csv
import ast
from collections import defaultdict
super_dic={}
d1 = {'a':2, 'b':5, 'c':3, 'd':6}
d2 = {'a':3, 'c':3}
d3 = {'b':4, 'd':4}
for d in (d1, d2, d3):
for key, value in d.iteritems():
super_dic.setdefault(key, []).append(value)
print super_dic
輸出的super_dic建:
{'a': [2, 3], 'c': [3, 3], 'b': [5, 4], 'd': [6, 4]}
不過,我想我的最終結果是:
{'a':[2, 3, 0], 'c':[3,3,0], 'b':[5,0,4],'d':[6,0,4]}
值的順序事項
任何幫助/反饋都是muc h讚賞。已經爭取了一段時間,所有嘗試的方法都沒有在最後建立正確的主字典。
*請注意,這不是一個重複的問題,因爲在Python中合併字典時出現的問題都忽略瞭如果密鑰項不存在,則添加零。 *
您是否需要將值列表與原始字典的順序相同,或者是否足夠使[5,4,0]而不是[5,0,4]? – Prune
@Prune訂單很重要。我將這個添加到我的問題,所以它明確 – user5927494
@timgeb一個投了+4解決了我的問題!非常感謝。走在前面,並將其標記爲答案 – user5927494