You need to enable JavaScript to run this app. Python遍历字符串时自定义计数器获取字符索引结果错误原因是什么
优惠活动
大模型
产品
解决方案
定价
更多

Python遍历字符串时自定义计数器获取字符索引结果错误原因是什么

问题分析

你的自定义计数器逻辑错误核心是:counter的自增操作被放在了else分支,只有当前字符不等于'o'的时候才会累加计数器,遇到匹配的'o'时计数器不会自增,因此出现了索引偏移。

具体执行流程拆解:

  1. 遍历到索引4的字符'o'时,满足i == 'o'条件,直接打印counter值4,没有执行counter自增,counter停留在4
  2. 遍历索引5的空格时,走else分支,counter变为5
  3. 遍历索引6的'W'时,走else分支,counter变为6
  4. 遍历索引7的'o'时,满足匹配条件,直接打印当前counter值6,因此输出了错误的索引结果
修正方案

把counter的自增逻辑移到if判断外,每次遍历完字符都累加即可:

val = 'Hello World'
counter = 0
print("Index of 'o' Using Index Function: ", val.index('o', 5))
print('---------------------------------------')

for i in val:
    if i == 'o':
        print(i, counter)
    counter += 1 # 不管字符是否匹配,每次循环都累加计数
print("------------------")

for i, var in enumerate(val):
    print(i, var)

修改后运行就能输出正确的o的索引4和7。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 05:12:00