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

2024-06-01 04:15:15 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个映射dictmapping

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

然后我得到一个dict 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)。你知道吗

如何在没有循环的情况下实现所需的反向检查?你知道吗


Tags: infor条目itemskeysjohndodict
1条回答
网友
1楼 · 发布于 2024-06-01 04:15:15

如果您在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)

相关问题 更多 >