初始化多维列表后Python列表分配超出范围
所以,我尝试使用多维列表为ASCII游戏制作地图。我有初始化列表的代码初始化多维列表后Python列表分配超出范围,python,list,Python,List,所以,我尝试使用多维列表为ASCII游戏制作地图。我有初始化列表的代码 mapData = [[[0 for m in range(3)] for x in range(32)] for y in range(32)] 然后我尝试使用以下代码访问并更改变量中的值 mapData[0][5][5] = 1 并获取此错误消息 IndexError: list assignment index out of range 我尝试了很多方法,但什么都想不出来。您最里面的列表只有三个单元格,因此尝试
mapData = [[[0 for m in range(3)] for x in range(32)] for y in range(32)]
然后我尝试使用以下代码访问并更改变量中的值
mapData[0][5][5] = 1
并获取此错误消息
IndexError: list assignment index out of range
我尝试了很多方法,但什么都想不出来。您最里面的列表只有三个单元格,因此尝试访问其中的
[5]
是行不通的
索引从最外层(32个条目)到最内层(3个条目)。如果您希望最里面的列表包含6个或更多单元格,则需要调整范围(3)中m的
循环
如果希望为最内层列表的第一个单元格编制索引,可能需要反转索引:
mapData[5][5][0] = 1
再详细说明一下:
返回最外层列表的第一个元素,该元素由嵌套列表理解中范围(32)中y的mapData[0]
循环生成
中的mapData[0][5]
然后访问上一个结果的第6个元素,即范围(32)循环中x的[5]
列表
中的[5]
尝试索引最里面的列表,即mapData[0][5][5]
。因为这些列表每个只有3个[0为范围(3)中的m生成的列表对象之一。
值,所以会引发0
异常索引器