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

Python循环与列表报错:久未使用Python运行代码触发IndexError

分析Python代码中的IndexError错误及解决办法

嘿,好久没碰Python确实容易踩这种基础小坑,我来帮你拆解一下问题~

错误原因

你这段代码里的问题出在空列表的索引赋值上:

n = int(input())
array = []  # 这里初始化了一个空列表
for i in range(n):
    array[i] = i+1  # 问题就在这一行!

Python的列表是动态容器,但空列表[]里没有任何元素,也就不存在array[0]、array[1]这些索引位置。当你试图直接给一个不存在的索引赋值时,Python就会抛出IndexError: list assignment index out of range——因为索引超出了列表当前的长度范围。

解决办法

给你三种常用的修正方案,按需选择:

方案1:使用append()方法(最直观)

append()是列表的内置方法,专门用来在列表末尾添加元素,不需要操心索引:

n = int(input())
array = []
for i in range(n):
    array.append(i+1)

方案2:提前初始化列表长度

如果一定要用索引赋值,可以先创建一个指定长度的列表(用占位元素填充),再逐个修改:

n = int(input())
array = [0] * n  # 初始化一个长度为n、元素都是0的列表
for i in range(n):
    array[i] = i+1

方案3:列表推导式(最Pythonic)

用一行代码直接生成目标列表,简洁高效,也是Python里推荐的写法:

n = int(input())
array = [i+1 for i in range(n)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:22:43