Python получить "под" 2-й список из большего 2-го списка? - PullRequest
0 голосов
/ 01 октября 2011

Как бы вы получили 2d подсписок из большего 2d списка?

gridx = 10
gridy = 16

grid = [[0]*gridx for i in range(gridy)]
subgrid = None
# I want to get a subgrid given an x,y grid origin (bottom-left) and x,y subgrid size

Ответы [ 2 ]

4 голосов
/ 01 октября 2011

Если вы хотите нарезать свой 2D-список в пределах x1, y1, x2, y2, вы можете сделать:

def getsubgrid(x1, y1, x2, y2, grid):
    return [item[x1:x2] for item in grid[y1:y2]]

, например:

grid = [[1, 2, 3, 4, 5, 6, 7, 8, 9],
        [11,12,13,14,15,16,17,18,19],
        [21,22,23,24,25,26,27,28,29],
        [31,32,33,34,35,36,37,38,39],
        [41,42,43,44,45,46,47,48,49],
        [51,52,53,54,55,56,57,58,59]]

print getsubgrid(3,2,5,4,grid)

#prints [[24, 25], [34, 35]]
1 голос
/ 01 октября 2011

Я предполагаю, что ваша сетка хранится в списке списков? То есть:

primary list: [ * * * * * * ]
second item:    * * * * * * 

Если это так, ваш ответ - это обход этих списков, от вашей начальной точки до вашей конечной точки.

sublist = []
for x in range(startx, endx):
     sublist.append(oldlist[x][starty:endy])
...