如何测试列表中的每个连续元素

时间:2018-01-16 02:50:15

标签: python

我试图在我的代码中创建一个转弯系统,并且想知道是否可以测试列表中的单个元素以查看它是否包含在另一个列表中,然后继续查看其他元素。列表以查看其中的列表。有没有办法执行此操作?

1 个答案:

答案 0 :(得分:0)

in测试会员资格。

a = [1, 2, 3, 4, 5]
b = [4, 5]

[x in b for x in a]
# [False, False, False, True, True]

# the list comprehension above is the same as:
#     acc = []
#     for x in a:
#         acc.append(x in b)
# with the result equal to acc

列表可以检查O(n)中的成员资格,而集合则需要O(1),因此如果ab非常长,则转换b会很有用首先是一组。

a = [1, 2, 3, 4, 5]
b = [4, 5]
set_b = set(b)

[x in set_b for x in a]
# [False, False, False, True, True]  <-- same as above

每次检查都是在恒定时间内完成而不是O(n),其中n以b的长度为界。