def rotate(self, matrix):
n = len(matrix)
for i in range(n):
for j in range(i+1, n):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
for i in range(n):
matrix[i].reverse()
return matrix
下面是Python中矩阵/图像旋转函数的代码。这适用于所有情况,我不知道为什么。有人能告诉我为什么这样做,因为我似乎找不到一个简单的解决方案,网上也简略和Python。你知道吗
例如,如果从以下矩阵开始:
在第一个嵌套的
for
循环块中,它基本上转置了矩阵:然后反转每一行以顺时针旋转90度:
作为旁注,这将是一种更短(可能更快)的方法:
它基本上是相同的,但是使用内置函数
zip
来转换矩阵和一个列表理解,以便简洁。它还可以旋转矩形矩阵。主要区别在于,原始代码修改了执行就地旋转的函数参数(matrix
),因此具有较低的空间复杂度。你知道吗同样,也可以实现逆时针旋转:
相关问题 更多 >
编程相关推荐