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

如何修复Python IndexError: string index out of range报错

IndexError问题修复说明

错误根源

代码报错是因为i遍历到字符串最后一个字符时,i取值为len(str)-1,此时访问str[i+1]的索引超出了字符串的合法取值范围(字符串索引从0开始,最大为len(str)-1)。同时原有逻辑还有隐藏问题:如果连续数字位于字符串末尾,无法正常加入结果列表。

修复后代码(兼容原有逻辑)

def get_int_arr(str):
    int_arr = []
    num_str = ""
    for i in range(len(str)):
        if str[i].isnumeric():
            num_str += str[i]
            # 先判断是否已经到字符串末尾,再判断下一位是否为非数字
            if i == len(str) - 1 or not str[i+1].isnumeric():
                int_arr.append(num_str)
                num_str = ""
    return int_arr
print(get_int_arr("data 48 call 9 read13 blank0"))

运行后输出为:['48', '9', '13', '0'],符合提取需求。如果需要返回整数数组,将int_arr.append(num_str)修改为int_arr.append(int(num_str))即可。

更简洁的实现方案

可以直接用Python正则表达式模块提取连续数字,无需手动处理边界逻辑:

import re

def get_int_arr(str):
    return re.findall(r'\d+', str)

print(get_int_arr("data 48 call 9 read13 blank0"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:27:01