0
我试图在顺时针方向将python中的矩阵(二维列表)旋转90度。这里是我的代码:尝试在python中旋转矩阵时输出错误
def rotate(matrix):
length = len(matrix)
new_matrix = [[0]*length]*length
for i in range(length):
for j in range(length):
new_matrix[j][length-1-i] = matrix[i][j]
print("new_matrix[",j,"][", length-1-i,"]", "is", new_matrix[j][length-1-i])
for i in range(length):
for j in range(length):
print(new_matrix[i][j])
return new_matrix
print(rotate([[1 ,2], [3, 4]]))
的想法很简单,旋转后,用我的元素,J为行数和列数届时将有Ĵ,长度为1-i的行和列数。
print语句用于验证我做得对。我试过[[1,2],[3,4],我得到一个错误的答案和一个相当混乱的输出:
new_matrix[ 0 ][ 1 ] is 1
new_matrix[ 1 ][ 1 ] is 2
new_matrix[ 0 ][ 0 ] is 3
new_matrix[ 1 ][ 0 ] is 4
4
2
4
2
[[4, 2], [4, 2]]
这似乎在某种程度上值1和3得到了某种方式覆盖。当我尝试[[1,2,3],[4,5,6],[7,8,8]]和new_matrix成为[[9, 6, 3], [9, 6, 3], [9, 6, 3]]
。所以这里肯定有问题。
任何想法为什么?
唉唉。这就是为什么。我以为我找到了一个更好的方法来创建一个二维列表..谢谢! – Gnijuohz