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
相关产品推荐
相关产品推荐

