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

Python新手求助:如何编写函数查找列表中连续的7、8、9组合

问题解决:查找列表中的连续7、8、9组合

你的代码存在两个关键问题:

  • 每次循环仅取出单个元素n[loop]与[7,8,9]对比,单个数值不可能等于包含三个元素的列表,这永远无法匹配成功。
  • 循环第一次执行时,只要当前元素不匹配就直接return False,函数直接终止,根本没机会检查后续元素。

修正思路:遍历列表时,每次取连续三个元素的切片和目标组合对比,遍历范围需控制在len(n)-2(避免索引越界),只有当所有位置都检查完毕仍无匹配时,才返回False。

修正后的代码

def check_sequence(n):
    # 遍历到列表倒数第三个元素即可,防止切片越界
    for i in range(len(n) - 2):
        # 取当前索引开始的连续三个元素
        if n[i:i+3] == [7,8,9]:
            return True
    # 所有位置都检查完无匹配,返回False
    return False

print(check_sequence([1000,10,11,34,67,89,334,5567,6534,765,2,3,5,6,112,7,8,9,11111]))

另一种简洁写法

利用zip批量获取连续三个元素进行判断:

def check_sequence(n):
    for a, b, c in zip(n, n[1:], n[2:]):
        if a ==7 and b ==8 and c ==9:
            return True
    return False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 03:15:39