从列表中选择项目时避免中断

时间:2019-06-15 09:35:51

标签: python python-3.x

考虑一个列表,并希望从列表中选择不在第二个列表中的第一项,然后停止搜索,这样做的最有效方法是什么(不间断)?

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}')

就像这样,但是要有效。

3 个答案:

答案 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