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

如何在Python循环中控制索引不自动递增?CodingBat sum67问题求助

问题分析
  • Python的for...enumerate循环的索引由预先生成的迭代器控制,你在循环内部手动修改i的值不会影响下一轮循环的索引取值,这是原有逻辑失效的核心原因
  • 原有代码只判断了6的下一个元素是否为7,没有覆盖6和7之间存在多个元素的场景,且错误使用break会直接终止整个循环,导致7之后的有效元素也不会被统计
修正代码(基于原有思路调整)

我们改用while循环手动控制索引,完全贴合你「检测到6后遍历到对应7再继续处理后续元素」的原始思路:

def sum67(nums):
    valid = []
    i = 0
    nums_len = len(nums)
    while i < nums_len:
        if nums[i] == 6:
            # 遍历找到当前6对应的7的位置
            while i < nums_len and nums[i] != 7:
                i += 1
            # 跳过7本身,直接到下一个待处理位置
            i += 1
        else:
            valid.append(nums[i])
            i += 1
    return sum(valid)
测试验证

调用sum67([1, 2, 2, 6, 99, 99, 7]),返回结果为5,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:48:03