在保留列表序列的同时检查一个列表是否是另一个列表的一部分



如何通过保留顺序来检查python中的列表是否是另一个列表的一部分。例:

a = [3, 4, 1, 2, 5]
b = [4, 1, 2]
Answer is True
a = [3, 4, 1, 0, 2, 5]
b = [4, 1, 2]
Answer is False as the order is not matched

这可以使用python列表相等来解决,比较所有位置的子列表:

is_b_sublist_of_a = any(b == a[i:i+len(b)] for i in range(len(a)))

表达式a[i:i+len(b)]创建一个长度为b的列表,从第i个位置开始。此表达式是针对a中的所有位置计算的。如果任何比较返回True,则any表达式也将True,否则False

使用此函数:

def is_a_in_x(A, X):
for i in range(len(X) - len(A) + 1):
if A == X[i:i+len(A)]: return True
return False

最新更新