我将如何结合下面的两个词典来形成新词典。
这两个词典将具有数字或“未找到”字段,我希望“未找到”字段始终被数字覆盖。字典将始终具有相同的键,并且每个键只有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,但它是单行的。

注意,如果ba都包含数字,则将首选b中的值!

10-03 00:11