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

如何正确索引字符串中不同位置的相同字符?Python代码问题

问题原因

你这段代码的问题出在word.index(i)上,这个方法只会返回字符i在字符串中第一次出现的索引。当字符串里有重复的大写字母(比如示例里的第二个A),它不会返回当前遍历到的位置,而是直接取第一次出现的索引0,所以结果不符合预期。

解决方法

改用enumerate()函数遍历字符串,它能同时返回当前字符的索引和字符本身,这样就能直接把正确的索引加入列表:

def capitals(word):
    arr = []
    for idx, char in enumerate(word):
        if char.isupper():
            arr.append(idx)
    return arr

也可以用更简洁的列表推导式实现:

def capitals(word):
    return [idx for idx, char in enumerate(word) if char.isupper()]

测试示例字符串「AbcDeFgAiJ」,两种写法都会返回预期结果[0, 3, 5, 7, 9]。

内容的提问来源于stack exchange,提问作者lyon98.dbios

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:40:47