我试图在我的代码中创建一个转弯系统,并且想知道是否可以测试列表中的单个元素以查看它是否包含在另一个列表中,然后继续查看其他元素。列表以查看其中的列表。有没有办法执行此操作?
答案 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),因此如果a
或b
非常长,则转换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
的长度为界。