魔术命令和...词典在列表中创建。 " D1"是最完整的字典,因为所有行都有数据。 但是d2,d3和d4没有所有行的数据。
file1 used to created d1:
key1 x1 x2 x3
key2 y1 y2 y3
key3 z1 z2 z3
key4 w1 w2 w3
key5 k1 k2 k3
key6 q1 q2 q3
file2 used to created d2:
key1 x4 x5 x6
key2 y4 y5 y6
key3 z4 z5 z6
key6 q4 q5 q6
file3 used to created d3:
key2 y7
key3 z7
key6 q7
file4 used to created d4:
key3 z8
key4 w8
key5 k8
很抱歉放置示例文件,但我认为它对其他文件有用。
问题在于:
dicts = [d1, d2, d3, d4] # my dictionary list
new_dict = {}
for d in [d1, d2, d3, d4]:
for key in d:
if key not in new_dict:
new_dict[key] = d[key]
else:
new_dict[key] += d[key]
for k, v in new_dict.iteritems():
print (k+'\t'+ ('\t'.join(v)))
我的预期表格应该是这样的,当我没有价值时,空格会有空格。
key1 x1 x2 x3 x4 x5 x6
key2 y1 y2 y3 y4 y5 y6 y7
key3 z1 z2 z3 z4 z5 z6 z7 z8
key4 w1 w2 w3 w8
key5 k1 k2 k3 k8
key6 q1 q2 q3 q7
但我能达到的最远的是:
key1 x1 x2 x3 x4 x5 x6
key2 y1 y2 y3 y4 y5 y6 y7
key3 z1 z2 z3 z4 z5 z6 z7 z8
key4 w1 w2 w3 w8
key5 k1 k2 k3 k8
key6 q1 q2 q3 q7
如果他们没有'我可以如何包含空/空值。存在吗? 先感谢您。
答案 0 :(得分:1)
对于每个字典d
,您希望将new_dict
中的列表填充为相同的大小,并使用空/空值(例如None
)。< / p>
for d in ...:
...
size = max(map(len, new_dict.values()))
for value in new_dict.values():
value += [None] * (size - len(value))
并支持建议考虑defaultdict
或setdefault
。