【问题标题】:Convert a two dimensional array(length 9) to a Grids of 3 x 3 (9 elements)将二维数组(长度 9)转换为 3 x 3(9 个元素)的网格
【发布时间】:2019-10-06 17:14:13
【问题描述】:

我有一个二维数组,它代表下表中的一系列行值:

[
  ["5","3",".",".","7",".",".",".","."],
  ["6",".",".","1","9","5",".",".","."],
  [".","9","8",".",".",".",".","6","."],
  ["8",".",".",".","6",".",".",".","3"],
  ["4",".",".","8",".","3",".",".","1"],
  ["7",".",".",".","2",".",".",".","6"],
  [".","6",".",".",".",".","2","8","."],
  [".",".",".","4","1","9",".",".","5"],
  [".",".",".",".","8",".",".","7","9"]
]

我需要从中获取列值,我可以使用

map(list, zip(*arr))
and got this:

[
 ['5', '6', '.', '8', '4', '7', '.', '.', '.'], 
 ['3', '.', '9', '.', '.', '.', '6', '.', '.'], 
 ['.', '.', '8', '.', '.', '.', '.', '.', '.'], 
 ['.', '1', '.', '.', '8', '.', '.', '4', '.'], 
 ['7', '9', '.', '6', '.', '2', '.', '1', '8'], 
 ['.', '5', '.', '.', '3', '.', '.', '9', '.'], 
 ['.', '.', '.', '.', '.', '.', '2', '.', '.'], 
 ['.', '.', '6', '.', '.', '.', '8', '.', '7'], 
 ['.', '.', '.', '3', '1', '6', '.', '5', '9']
]

现在我需要创建一个类似的包含 3 x 3 网格元素的二维数组,输出应如下所示

[
 ['5','3','.','6','.','.','.','9','8'],
 ['.','7','.','1','9','5','.','.','.'],
 ['.','.','.','.','.','.','.','6','.'],
 ['8','.','.','4','.','.','7','.','.'],
 ['.','6','.','8','.','3','.','2','.'],
 ['.','.','3','.','.','1','.','.','6'],
 ['.','6','.','.','.','.','.','.','.'],
 ['.','.','.','4','1','9','.','8','.'],
 ['2','8','.','.','.','5','.','7','9']
]

我尝试将 3 个元素压缩在一起并迭代 3 行,但我一无所获

x = 3
for i in range(x):
  map(list, zip(*arr)[0,1,2])
  x += 3

【问题讨论】:

    标签: python matrix iteration spatial


    【解决方案1】:

    无论如何,对于嵌套循环示例:

    def get_3x3_grids(arr):
        grids = []
        for r in range(0, 9, 3):
            for c in range(0, 9, 3):
                grids_row = []
                for row in range(r, r + 3):
                    grids_row += arr[row][c:c + 3]
                grids.append(grids_row)
    
        return grids
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      相关资源
      最近更新 更多