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 に答える