【发布时间】:2015-09-24 11:16:01
【问题描述】:
给定一个映射字典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 就是一个这样的例子(因为 revenue 中存在“C”,而 spend 中不存在“Tim”)。
再次循环的方法(在此 for 循环内)- 这次是在 revenue.keys() 上并检查密钥是否不在 spend.keys() 中-不幸的是,这不是一个选项,因为这将导致 len(revenue) 的数量重复,每场比赛。
我们如何在没有循环的情况下实现所需的反向检查?
【问题讨论】:
-
澄清:
mapping字典是静态的。spend和mapping字典每天都会包含不同的数据。 -
你必须循环花费吗?如果你可以循环映射,那么它可以在一行中完成:[k for k,v in mapping.items() if not spend.get(k) and income.get(v)]
标签: python python-2.7 dictionary set key