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

Python for循环中如何让i自增3?统计X并跳过后续2个字符的问题

问题根本原因

Python的for循环搭配range()迭代时,每次循环的索引i会被自动赋值为range序列的下一个元素,你在循环体内部对i执行i += 2的修改只会在当前轮次生效,下一轮循环开始时i会被覆盖为序列的下一个值,完全起不到跳过后续元素的效果。比如第一轮i=0,修改i为2,下一轮循环i自动变成1,相当于修改无效。

修复方案

把for循环换成while循环,手动控制索引的步进逻辑:遇到X的时候主动把索引加3(当前X占1位,再往后跳2位,总共加3),没遇到X的话每次索引加1即可。

可运行的代码示例
def count_x(arr):
    count = 0
    i = 0
    arr_length = len(arr)
    while i < arr_length:
        if arr[i] == 'X':
            count += 1
            i += 3 # 跳过当前X+后续2个元素,直接步进3位
        else:
            i += 1 # 未命中X仅步进1位
    return count
测试验证
  • 输入XXXY:输出1,符合预期
  • 输入XXXYX:输出2,符合预期
  • 输入XYXXXXXYX.:输出3,符合预期
  • 输入XXYXXXY:输出2,符合预期
  • 输入XXXX:输出2,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:36:04