我尝试初始化2d列表,当我运行此代码时,我得到一个" IndexError:列表索引超出范围"错误,这是为什么?
import numpy as np
cell_id = 0
obj_list = []
for i in range(0,100):
for j in range(0,100):
orient = np.random.randint(180)
obj_list[i][j] = [cell_id, orient]
cell_id += 1
答案 0 :(得分:2)
当你宣布你的列表obj_list = []
时,你有一个列表,但是python不知道它们应该是什么。执行此操作obj_list[i][j]
时,您声明列表中的i
项是一个数组,但您还没有明确说明情况就是这样。所以我会将你的代码更改为:
for i in range(0,100):
obj_list.append([]) # Append an element to the list
for j in range(0,100):
orient = np.random.randint(180)
obj_list[i].append([cell_id, orient]) # append an element to the sub list
cell_id += 1