如何检查一个列表是否以另一个列表开头?

How to check if one list starts with another?

如果我在 Python、[0, 1][0, 1, 2, 3] 中有两个列表,如何检查第一个列表是否以第二个列表开头?

我知道如何处理字符串,只需使用 startswith 方法即可。但显然你不能对列表这样做。

是否有一种单行线可以满足我所描述的要求?

>>> a = [0, 1]
>>> b = [0, 1, 2, 3]
>>> a[:min(len(a), len(b))] == b[:min(len(a), len(b))]
True

只需并行迭代它们并检查相应的值是否相等。您可以使用 zip, along with all:

为等式迭代创建生成器表达式
>>> a = [0, 1]
>>> b = [0, 1, 2, 3]
>>> all(i==j for i,j in zip(a,b))
True

这是可行的,因为 zip 在最短的迭代器用尽时停止。

我想这就是你的意思

if the list x starts with the list y
>>> x[0:len(y)] == y 
True
>>> x
[0, 1, 2, 3]
>>> y
[0, 1]