Python列表赋值报错求助:IndexError索引越界问题
问题分析与解决
错误原因
你定义的J是空列表,列表的索引赋值要求对应位置已存在元素,空列表没有任何可用索引,所以执行J[t]=[[1,3,5]]时会抛出IndexError: list assignment index out of range。
另外你的循环逻辑也不符合期望输出:range(0,1)仅循环1次(t=0),但你试图给J[t+1](即J[1])赋值,同样会因索引不存在报错;后续的append操作还会生成嵌套结构,和你要的结果完全不符。
修正后的代码
要得到期望输出[[1,3,5],[1,3]],根本不需要循环,直接构造列表或用append逐步添加即可:
方案1:直接初始化列表
J = [[1,3,5], [1,3]] print(J)
方案2:用append逐步添加元素
J = [] J.append([1,3,5]) J.append([1,3]) print(J)
如果一定要保留循环(非必要)
若坚持用循环实现,需调整逻辑确保索引合法:
J = [] for t in range(2): J.append([1,3,5] if t == 0 else [1,3]) print(J)
验证输出
以上代码运行后均会输出:
[[1, 3, 5], [1, 3]]
内容的提问来源于stack exchange,提问作者fromanidiot
相关产品推荐
相关产品推荐

