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

如何避免将字符串大写字母索引添加到列表时被拆分?

解决提取大写字母索引时的数字拆分问题

问题根源

你代码里的capitals += str(current)是问题所在:当索引是两位数(比如10)时,str(current)会变成"10",而+=操作会把这个字符串的每个字符挨个塞进列表——相当于分别添加了'1'和'0'两个元素。最后转成整数时,原本的单个索引就被拆成了两个独立数字,结果自然出错。

两种修复方法

方法1:直接存储整数索引(最简便)

不用把索引转成字符串,直接将整数类型的索引添加到列表即可:

string = input()

capitals = []

for current in range(len(string)):
    if string[current].isupper():
        capitals.append(current)  # 直接添加整数索引,一步到位

print(capitals)

方法2:若需存字符串则用append替代+=

如果一定要先存储字符串形式的索引,别用+=,改用append()把完整的字符串作为单个元素加入列表,最后再统一转成整数:

string = input()

capitals = []

for current in range(len(string)):
    if string[current].isupper():
        capitals.append(str(current))  # 将完整的字符串索引作为单个元素添加

print([int(x) for x in capitals])

测试示例

比如输入字符串"abcDEFghijKLM",其中大写字母位于索引3、4、5、10、11、12:

  • 修复前输出:[3,4,5,1,0,1,1,1,2](错误)
  • 修复后输出:[3,4,5,10,11,12](正确)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:20:21