对多个列表重复操作

2024-10-02 14:27:06 发布

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

让我们假设以下列表:

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。你知道吗


Tags: 函数功能l1列表def选项序列detail
1条回答
网友
1楼 · 发布于 2024-10-02 14:27:06
totest = set(totest)

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

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

相关问题 更多 >