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

Python中capital_indexes函数index方法返回重复索引问题求助

解决capital_indexes函数中index返回重复索引的问题

问题出在你使用val.index(i)获取索引的方式上:list.index()方法只会返回第一个匹配元素的位置,所以当输入中有重复的大写字母(比如"HHellO"里的两个'H')时,第二个'H'调用该方法会返回第一个'H'的索引0,导致结果不符合预期。

下面是两种可行的修改方案:

方案一:直接遍历字符串的索引与字符(推荐)

无需先将字符串转成列表,用enumerate()同时获取索引和字符,代码更简洁高效:

def capital_indexes():
    pos = []
    x = input("Enter a value\n>>")
    for idx, char in enumerate(x):
        if char.isupper():
            pos.append(idx)
    print(pos)
capital_indexes()

方案二:保留列表,遍历索引而非元素

如果你想保留原代码中把字符串转成列表的逻辑,可以通过遍历列表的索引来获取正确位置:

def capital_indexes():
    val = []
    pos = []
    x = input("Enter a value\n>>")
    for i in x:
        val.append(i)
    # 遍历列表的索引范围,直接通过索引访问元素判断
    for idx in range(len(val)):
        if val[idx].isupper():
            pos.append(idx)
    print(pos)
capital_indexes()

测试输入"HHellO",两种方案都会输出正确的[0, 1, 5]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:51:01