使用带有列表的foreach中的查找表

时间:2015-10-18 05:12:06

标签: python

我正在尝试使用查找表和列表来确定是否以及应该运行多少次函数。

如果我有一个像

这样的查找表
bar = {
         "one": 1
         "two": 2
       "three": 3
}

lis = [1, 4, 5, 3]

通过这样的设置,我想检查lis是否包含bar中的任何键,并且每次出现时都会执行以下操作:

for(lis in bar):
    //something

2 个答案:

答案 0 :(得分:2)

你可以做,但它很难看:

for x in (a for a in lis if a in bar):
    # Something

但我不推荐它,并赞成:

for x in lis:
    if x not in bar:
        continue
    # Something

如果做某事是你关心结果的功能,你可以这样做:

results = [do_something(x) for x in lis if x in bar]

答案 1 :(得分:1)

如果我是你,我会做类似的事情:

lis = [1,4,5,3]
values = bar.values()
for i in lis:
    if i in values:
        #do stuff