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

Python获取字符串同字符多实例索引及现有代码异常输出原因求解

代码异常原因
  • 循环逻辑错误+变量覆盖:你最初定义x = "o",但后续for x in string会将x重新赋值为字符串的每一个字符,实际是遍历了整个字符串的所有字符,而非你预期的只遍历值为"o"的字符,所以会输出20条结果,和预期逻辑完全不符。
  • index()方法特性限制:Python的str.index()方法只会返回传入字符第一次出现的索引。比如遍历到索引为8的第二个"o"时,调用string.index("o")依然返回第一个"o"的索引4,遍历到后续重复字符时都会返回该字符首次出现的位置,这就是输出中出现大量重复数值的原因。
正确实现方案

方案1:直接遍历输出匹配索引

使用enumerate()同时获取字符和对应的索引,匹配到目标字符时直接打印索引:

string = "Python for Beginners"
target = "o"
for idx, char in enumerate(string):
    if char == target:
        print(idx)

运行后输出:

4
8

方案2:收集所有匹配索引到列表

如果需要后续使用这些索引,可以用列表推导式一次性生成结果:

string = "Python for Beginners"
target = "o"
index_list = [idx for idx, char in enumerate(string) if char == target]
print(index_list)

运行后输出:

[4, 8]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:54:02