输入为3字典d1
/ d2
/ d3
d1 = {aa:1, bb:2, cc:3}
d2 = {aa:9, cc:4, jj:8}
d3 = {aa:5, bb:0, kk:88}
必填最终
final = {aa: [1,9,5], bb: [2,'Not in d2',0], cc: [3,4,'Not in d3'],
jj: ['Not in d1',8,''Not in d3'], kk: ['Not in d1','Not in d2',88]}
必需的是具有键值的单字典,如下所示。值的位置应按字典顺序排列。
此外,如果键不在任何字典中,那么'不在d1 / d2 / d3 / ...中应该作为值进入相应的位置。我能够合并字典但不能将缺失的密钥信息保存为最终字典中的值
答案 0 :(得分:4)
一种方法是计算字典键的并集。然后在字典理解中使用dict.get
来创建将字符映射到列表的字典。
keys = set().union(d1, d2, d3)
final = {k: [d1.get(k, 'Not in d1'),
d2.get(k, 'Not in d2'),
d3.get(k, 'Not in d3')] for k in keys}
print(final)
{'bb': [2, 'Not in d2', 0],
'aa': [1, 9, 5],
'cc': [3, 4, 'Not in d3'],
'kk': ['Not in d1', 'Not in d2', 88],
'jj': ['Not in d1', 8, 'Not in d3']}