如何在 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)
给定一个映射字典 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)