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

Python向嵌套列表添加元素触发IndexError索引越界错误求助

IndexError: list index out of range 错误原因及修复方案

你遇到的IndexError核心问题是:初始化的num是空列表,但代码直接尝试通过num[i]访问不存在的子列表。当外层循环第一次执行i=0时,num里还没有任何元素,num[0]自然不存在,触发索引越界。

错误原因

  • num初始化为空列表[],未提前为每个外层循环的i创建对应的子列表,导致在内层循环中调用num[i].append()时,num[i]不存在。

修复方案

方案一:外层循环先创建子列表

在每次外层循环开始时,先给num添加一个空的子列表,再在内层循环中向这个子列表追加元素:

n = len(network)  # len()返回整数,无需int()转换
num = []

for i in range(n):
    num.append([])  # 先初始化当前i对应的子列表
    for j in range(n):
        num[i].append(int(between_lists(network[i], network[j])))
return num

方案二:使用列表推导式(更简洁)

利用Python的嵌套列表推导式,一次性生成目标嵌套列表,代码更紧凑高效:

n = len(network)
num = [[int(between_lists(network[i], network[j])) for j in range(n)] for i in range(n)]
return num

额外优化点

  • 原代码中的int(len(network))是冗余操作,因为len()函数本身返回的就是整数类型,直接赋值n = len(network)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:35:19