考虑一个列表,并希望从列表中选择不在第二个列表中的第一项,然后停止搜索,这样做的最有效方法是什么(不间断)?
aa = [11,22,33,44,55,66]
bb = [11,12,22,23,33,34,88,66]
for x in aa:
if x not in bb:
bb.append(x)
break
print(f'{aa} \n{bb}')
就像这样,但是要有效。
答案 0 :(得分:3)
最有效的方法是在生成器上使用next
:
next((x for x in aa if x not in bb), 'Not found')
# 44
答案 1 :(得分:1)
aa = [11,22,33,44,55,66]
bb = [11,12,22,23,33,34,88,66]
set_=set()
for i in bb:
set_.add(i)
ans=-1;
for x in aa[::-1]:
if x not in set_:
ans=x
print(ans)
答案 2 :(得分:0)
您可以使用集合减法
>>> not_in = set(aa) - set(bb)
>>> list(not_in)[0] if not_in else 'Not found'
44