如何在 Python 中检查另一个字典中是否存在值的键(在一个字典中定义)?

How to check for presence of the key of a value (as defined in one dict) in another dict, in Python?

给定一个映射字典 mapping:

{
'John': 'A',
'Mary': 'B',
'Tim' :'C'
}

然后我得到了一个字典 spend:

{
'John': 23,
'Mary': 1,
}

和一个字典 revenue:

{
'A': 12,
'B': 2,
'C': 23
}

然后:

for k, v in spend.items():
# do stuff

在此循环中,我想检查 revenue 中的条目是否在 spend 中没有相应的条目(基于我们的映射) . Tim 就是这样的一个例子(因为 'C' 出现在 revenue 中,但 'Tim' 不出现在 spend 中。

再次循环的方法(在此 for 循环内)——这次超过 revenue.keys() 并检查密钥是否不在 spend.keys() 中——不幸的是,这不是一个选项每场比赛将导致 len(revenue) 次重复。

我们如何在没有循环的情况下实现所需的反向检查?

如果您反转 mapping 字典中的键和值,然后循环遍历收入字典,就可以轻松地做到这一点。您不需要永久反转它,只需在循环之前将其反转并存储在新字典中即可。

例子-

reversedmapping = {v:k for k,v in mapping.items()}
for k,v in revenue.items():
    if (k not in reversedmapping) or (reversedmapping[k] not in spend):
        print(k)