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

Python中检查列表是否按顺序包含/不包含指定序列的最优方法

实现检查指定序列是否按精确顺序存在的函数

需求说明

需要实现一个函数,接收一个列表作为参数,用于检查序列['x','y','z']是否按精确的连续顺序存在于输入列表中。函数的返回规则为:当该序列存在时返回True,不存在时返回False(注:原示例代码中注释掉not是为了便于解释逻辑,实际判断逻辑需匹配返回规则)。

示例代码(仅作逻辑示意)

input_list = ['_','x','y','z','_']
# 注意:Python原生`in`操作符无法直接检查连续子序列,此处仅为逻辑示意
if ['x','y','z'] not in input_list:
    return True
else:
    return False

期望效果

  • 输入列表为['_','x','y','z','_']时,返回True
  • 输入列表为['_','x','y','a','_']时,返回False
  • 输入列表为['_','x','z','y','_']时,返回False

正确实现代码

Python原生的in操作符仅能检查单个元素是否在列表中,无法直接判断连续子序列,因此需要手动实现子序列检查逻辑:

def check_xyz_sequence(input_list):
    # 遍历列表,检查是否存在连续的x、y、z
    for i in range(len(input_list) - 2):
        if input_list[i] == 'x' and input_list[i+1] == 'y' and input_list[i+2] == 'z':
            return True
    # 未找到符合条件的连续序列
    return False

验证用例

# 测试用例1
print(check_xyz_sequence(['_','x','y','z','_']))  # 输出: True
# 测试用例2
print(check_xyz_sequence(['_','x','y','a','_']))  # 输出: False
# 测试用例3
print(check_xyz_sequence(['_','x','z','y','_']))  # 输出: False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:01:11