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

求解:Python执行del user[i]时出现IndexError: list assignment index out of range错误

错误原因分析

你遇到的IndexError: list assignment index out of range是因为循环删除列表元素时,列表长度在动态缩短,但循环次数是基于初始列表长度设定的,导致后续循环的索引超出了当前列表的有效范围。

具体执行过程:

  • 初始user长度为5,循环会按range(5)执行5次(i取0、1、2、3、4)
  • 第一次删除user[0]后,列表变为[2,34,45,37],长度变为4
  • 第二次删除user[1]后,列表变为[2,45,37],长度变为3
  • 第三次删除user[2]后,列表变为[2,45],长度变为2
  • 第四次循环时i=3,但此时列表最大有效索引仅为1,访问user[3]直接触发索引越界错误
解决办法

根据你清空列表的需求,提供三种可行方案:

方案1:直接清空列表(最简单高效)

无需循环,直接将列表赋值为空:

user = [1,2,34,45,37]
user = []
print(user)

方案2:倒序遍历删除

倒序遍历索引,删除后面的元素不会影响前面未遍历的索引:

user = [1,2,34,45,37]
for i in range(len(user)-1, -1, -1):
    del user[i]
print(user)

方案3:while循环控制

通过列表是否为空来控制循环,直到所有元素被删除:

user = [1,2,34,45,37]
while user:
    del user[0]
print(user)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:24:52