我将如何结合下面的两个词典来形成新词典。
这两个词典将具有数字或“未找到”字段,我希望“未找到”字段始终被数字覆盖。字典将始终具有相同的键,并且每个键只有2个元素。这是一个例子。
Dict1: {'MaterialBC': '2261651270620793', 'RFIDBC': 'Not Found'}
Dict2: {'MaterialBC': 'Not Found', 'RFIDBC': '1022010911012012'}
NewDict: {'MaterialBC': '2261651270620793', 'RFIDBC': '1022010911012012'}
除了针对每种情况使用if语句之外,还有其他更简便的方法吗?
最佳答案
我能想到的最简单的是
a = {'MaterialBC': '2261651270620793', 'RFIDBC': 'Not Found'}
b = {'MaterialBC': 'Not Found', 'RFIDBC': '1022010911012012'}
c = { k: a[k] if b[k] == 'Not Found' else b[k] for k in a.keys() }
它包含一个
if
,但它是单行的。注意,如果
b
和a
都包含数字,则将首选b
中的值!