Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
初始化多维列表后Python列表分配超出范围_Python_List - Fatal编程技术网

初始化多维列表后Python列表分配超出范围

初始化多维列表后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 我尝试了很多方法,但什么都想不出来。您最里面的列表只有三个单元格,因此尝试

所以,我尝试使用多维列表为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

我尝试了很多方法,但什么都想不出来。

您最里面的列表只有三个单元格,因此尝试访问其中的
[5]
是行不通的

索引从最外层(32个条目)到最内层(3个条目)。如果您希望最里面的列表包含6个或更多单元格,则需要调整范围(3)中m的
循环

如果希望为最内层列表的第一个单元格编制索引,可能需要反转索引:

mapData[5][5][0] = 1
再详细说明一下:

  • mapData[0]
    返回最外层列表的第一个元素,该元素由嵌套列表理解中范围(32)中y的
    循环生成
  • mapData[0][5]
    中的
    [5]
    然后访问上一个结果的第6个元素,即范围(32)
    循环中x的
    列表
  • [5]
    中的
    mapData[0][5][5]
    尝试索引最里面的列表,即
    [0为范围(3)中的m生成的列表对象之一。
    。因为这些列表每个只有3个
    0
    值,所以会引发
    索引器
    异常