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

Python 3.10出现IndexError: list index out of range错误求助

错误原因与解决建议

错误根源

你初始化的node_map = [{}]是一个仅含1个空字典的列表,当循环到i=1时,尝试访问node_map[1],但列表中不存在该索引的元素,因此抛出IndexError: list index out of range。同时,你期望的输出是字典结构(数字为键,子字典为值),但当前用列表存储,逻辑与需求不匹配。

解决方案(推荐,匹配期望输出)

将node_map初始化为空字典,循环时直接为对应数字键赋值子字典:

import random

# 确保a、number_of_nodes、mat、number_of_hosts_per_node已提前定义
node_map = {}
for i in range(a):
    print(i)
    # 直接为字典的i键创建子字典
    node_map[i] = {
        "a_list": [j for j in range(number_of_nodes) if mat[i][j] != 0],
        "number_a": random.randint(1, number_of_hosts_per_node)
    }
    print(i, " ", node_map)

运行后会生成你期望的字典格式输出,且不会出现索引越界问题。

额外注意事项

  • range(0,a)可简化为range(a),两者效果完全一致。
  • 需确保矩阵mat的行数不小于a,否则访问mat[i]时也会触发索引越界错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 20:22:43