将坐标列表转换为一组列表/网格引用

时间:2016-05-27 01:46:10

标签: python

我有一个列表,它将获得2n + 1大小的网格的左上部分。

$ git add directoryname

看起来像:n = 1 section = [[x, y] for x in range (n+1) for y in range (n+1)] 并且会获得3x3(2n + 1)网格左上角的坐标,例如:

[[0, 0], [0, 1], [1, 0], [1, 1]]

然后,我可以通过编辑此列表中的坐标值来获取网格的每个四分之一部分:

[[1, 2, 3],
  [4, 0, 5],
  [6, 7, 8]]

我需要以某种方式个性化

中的每个第二个列表元素
for coOrd in topRight:
    coOrd[1] += n
for coOrd in botLeft:
    coOrd[0] += n
for coOrd in botRight:
    coOrd[0] += n
    coOrd[1] += n

这样我就可以用它来引用一个网格列表,其中包含整个网格的值,如下所示:[0, 0], [0, 1], [1, 0]... -> [0][0], [0][1], [1][0]

我希望能够通过for循环获取每个部分,该循环将遍历topLeft,topRight等中的每个坐标,并将这些部分应用于gridList。

gridList[0][0], gridList[0][1]

希望我已经解释得很清楚,如果我没有抱歉,请多多询问,我会尽力解释。

基本上归结为:我需要将一个(3x3)网格分成4个部分,我想出了一个循环来抓取坐标,我正在努力实现这些坐标以便能够从网格中获取值

感谢。

1 个答案:

答案 0 :(得分:1)

您可以编写辅助函数:

def gL(gridList, values): 
    return gridlist[values[0]][values[1]]

然后,你的

gridTL = map(lambda m: gl(gridList, m), section)

其中,section是您想要的任何部分......

注意:

map不被认为是非常Pythonic。您可以考虑将列表推导用于类似的事情。像这样:

gridTL = [gridlist[m[0]][m[1]]for m in section]