1

我目前正在使用一个函数来返回一个元组(坐标)列表。我需要分配这些坐标变量,以便我可以在 for 循环中使用它们。

我的功能是:

new_connect = astar.get_path(n1x, n1y, n2x, n2y)

我得到print(new_connect)输出:

[(76, 51), (75, 51), (74, 51), (73, 51), (72, 51), (71, 51), (70, 51), (69, 51), ...]

我需要分配这些元组变量,即 (x, y)
所以它们可以在以下 for 循环中使用:

for x in range(new_connect):
    for y in range(new_connect):
        self.tiles[x][y].blocked = False
        self.tiles[x][y].block_sight = False

哪个(应该)绘制坐标并更改它们的平铺值。

任何帮助是极大的赞赏。我一直在努力解决这个问题,感觉我错过了一些超级简单的东西。

4

2 回答 2

1

您可以使用解包

new_connect = [(76, 51), (75, 51), (74, 51), (73, 51), (72, 51), (71, 51), (70, 51), (69, 51)]
for x, y in new_connect:
    print(x, y)
于 2019-12-17T04:11:56.207 回答
1

因此,目前尚不清楚range(new_connect)实际如何工作。它不应该。您应该收到TypeError, 因为列表对象不是 的正确参数range

也就是说,您应该能够通过在for语句本身中执行元组解包来为元组列表创建一个 for 循环。

for x, y in astar.get_path(...):
    ...
于 2019-12-17T04:12:19.593 回答