Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
在Python3中遍历二维对象列表_Python_Arrays_List - Fatal编程技术网

在Python3中遍历二维对象列表

在Python3中遍历二维对象列表,python,arrays,list,Python,Arrays,List,我试图在Python3.35中制作一个简单的基于2D平铺的游戏,但是我在使用多维数组时遇到了问题 我有一个16*10大小的区域,我用“地板”对象填充它,然后我尝试逐块迭代16*10区域的瓷砖,调用每个地板对象的绘制方法。这就是我遇到麻烦的地方。就我的一生而言,我不知道如何在迭代时调用对象 这是我用地板填充该区域的方式: self.tiles = [[],[]] self.tiles = [[floor() for x in range(self.width)] for x in range(se

我试图在Python3.35中制作一个简单的基于2D平铺的游戏,但是我在使用多维数组时遇到了问题

我有一个16*10大小的区域,我用“地板”对象填充它,然后我尝试逐块迭代16*10区域的瓷砖,调用每个地板对象的绘制方法。这就是我遇到麻烦的地方。就我的一生而言,我不知道如何在迭代时调用对象

这是我用地板填充该区域的方式:

self.tiles = [[],[]]
self.tiles = [[floor() for x in range(self.width)] for x in range(self.height)]
以下是我尝试过的:

for x in range(bar.width):
    for y in range(bar.height):
        bar.tiles[x][y].draw(x,y)
我还尝试:

for x in range(bar.width):
    for y in range(bar.height):
        bar.tiles[0][x][1][y].draw(x,y)
第一个版本尝试遍历列表维度(对于x),在到达2后超出范围。 第二个选项看起来很有希望,但给出了以下错误:

TypeError:“floor”对象不支持索引

有什么帮助吗?谢谢

已解决: 好的,第一行应该是

       tiles = [[]]

在这之后,第一个版本开始工作。

第1个版本有什么问题吗?在第2个版本中,您尝试获取bar.tiles[0][x]的第一个元素,这是一个地板。如果您能创建一个其他人可以测试的最小工作示例,这可能会有所帮助。@pal sch抱歉,我不是英语母语人士,所以我不知道这是否对任何人都有意义。版本1不起作用,因为它没有将x和y作为第一个和第二个索引,而是将x作为我要访问的维度的索引,这在变为2后会给我一个超出范围的错误。可能self.tiles=[[floor()表示范围内的x(self.width)]表示范围内的y(self.height)],而不是self.tiles=[[floor()表示范围内的x范围内x的(自宽)](自高)]?