针对多个列表重复操作

让我们假设以下列表:


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。


慕尼黑8549860
浏览 130回答 1
1回答

慕哥6287543

totest = set(totest)for lst in l1, l2, l3:    for item in totest.intersection(lst):        evalitem(item)如果您不知道如何处理异常(except: return不计算在内),则根本不需要使用try...except。在调用有问题的函数的代码中进行处理。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python