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