IndexError:列表索引超出范围 - 定义2d列表时

时间:2016-05-01 20:11:28

标签: list python-3.x

我尝试初始化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

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