如何基于键合并两个字典,但在python中包含缺少的键值?

时间:2019-04-15 17:58:17

标签: python dictionary

如果我有两个长度相同且键值不同的字典,那么如何实现下面的合并结果。

modbusPort.DataReceived += Incoming;

结果:

left =  {key1: x1, key2: y1 , key3: z1 , key5 : n1}  
right = {key1: x2, key2: y2 , key4 : m1 ,key5 : n1}  

2 个答案:

答案 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')],
    ...
    }
]