You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何判断一个列表是否以另一个列表开头?

Python判断列表是否以另一个列表开头的实现方法

核心一行代码实现

写法1:切片比较(直观易读)

如果要判断列表a是否是列表b的前缀,直接使用:

len(a) <= len(b) and b[:len(a)] == a

针对你给出的示例:

a = [0, 1]
b = [0, 1, 2, 3]
print(len(a) <= len(b) and b[:len(a)] == a) # 输出True

如果需要判断任意一个列表是否是另一个的前缀,可以直接写:

(len(a) <= len(b) and b[:len(a)] == a) or (len(b) <= len(a) and a[:len(b)] == b)

写法2:迭代比较(性能更优)

如果处理的列表长度很大,切片会生成临时列表占用额外内存,可以用all()+zip()的迭代写法,遇到第一个不相等元素就直接终止比较,性能更高:

# 判断a是否是b的前缀
len(a) <= len(b) and all(x == y for x, y in zip(a, b))

如果只需要判断两个列表是否互为前缀(任意一个是另一个的开头),可以省略长度判断,直接写:

all(x == y for x, y in zip(a, b))

注:zip()会自动在较短的列表遍历结束后停止,所以该写法天然适配双向前缀判断的场景,也兼容空列表作为前缀的情况。

内容的提问来源于stack exchange,提问作者user16519472

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:12:03