这是迄今为止我试图查看具有相同密钥的三个字典并添加其相应值的代码。如果没有密钥存在,我希望代码添加一个零。在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