如果我有两个长度相同且键值不同的字典,那么如何实现下面的合并结果。
modbusPort.DataReceived += Incoming;
结果:
left = {key1: x1, key2: y1 , key3: z1 , key5 : n1}
right = {key1: x2, key2: y2 , key4 : m1 ,key5 : n1}
答案 0 :(得分:3)
我使用方括号(列表)而不是大括号(集合),因为看来对您而言顺序很重要,而集合不会保留元素的顺序。
keys = set(left.keys()) | set(right.keys())
d = {}
for k in keys:
d[k] = [left.get(k, 'missing'), right.get(k, 'missing')]
或稍短些,并带有理解符号
keys = set(left.keys()) | set(right.keys())
d = {k: [left.get(k, 'missing'), right.get(k, 'missing')] for k in keys}
答案 1 :(得分:1)
这是您想要的吗?
# settings.py
TEMPLATES = [
{
'DIRS': [os.path.join(BASE_DIR, 'templates')],
...
}
]