我正在寻找以螺旋方式打印矩阵,但我有一些问题需要了解何时/如何准确地更改布尔值以使其工作。这就是我现在所拥有的:
4x5矩阵
matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]]
以及应该打印它的功能
def print_spiral(matrix): left = False right = True down = False up = False min_x = 0 max_x = len(matrix) -1 min_y = 0 max_y = len (matrix[0]) - 1 x,y = 0, 0 while True: print matrix[x][y] if y < max_y and x == min_x: y=y+1 elif y == max_y and x < max_x: x=x+1 elif x == max_x and y > min_y: right = False y=y-1 elif y == min_y and x > min_x: x = x-1
就像现在一样,不是以螺旋方式打印矩阵,而是在循环中打印矩阵的外部行和列。我试图通过使用布尔左,右,上,下变量来解决这个问题,但此时我仍然坚持逻辑。有什么建议吗?!