1

让我们假设以下列表:

totest=[2,4,5,3,6]
l1=[6,8,7,9,4]
l2=[3,12,21,30]
l3=[2,5]

以及以下功能:

def evalitem(x):
...detail....

除非有异常,否则我必须针对 totest 与序列中的所有其他列表的交集执行该函数。
总是有以下选项:

test1=set(totest)&set(l1)
try:
  for i in test1:
  evalitem(i)
except:
    return
test2=.....

但是应该有一种更快的pythonic函数方式来实现这一点,并且性能要好得多。
请注意,只有当 test1 没有引发异常时,我们才会评估 test2。

4

1 回答 1

1
totest = set(totest)

for lst in l1, l2, l3:
    for item in totest.intersection(lst):
        evalitem(item)

如果你不知道如何处理异常(except: return不算数),根本没有必要使用try...except在调用相关函数的代码中处理它。

于 2013-05-25T11:10:16.630 回答