打印出数独板上方框内的元素

printing out the elements in a box in a Sudoku board

例如,我有一个像这样的 9x9 数独板:

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

我有一个函数:def subgrid_values(board,r,c) board 接受棋盘的大小,在这种情况下很大。 r 取行,c 取列。

所以如果我输入 subgrid_values(big,4,5) 它会给我一个输出 [3,6,7,2]

我正在尝试输出该列表,但我不知道如何输出

我希望这能让它更清楚。

其中一种解决方案是获取子网格的起始索引,并在行和列上循环三次,如下所示:

def solution(big, r, c):
  output = []
  row_start_index = (r // 3) * 3
  col_start_index = (c // 3) * 3

  for ri in range(row_start_index, row_start_index + 3):
    for ci in range(col_start_index, col_start_index + 3):
      if big[ri][ci]:
        output.append(big[ri][ci])
  return output