我已經寫了一個腳本來順時針旋轉矩陣90度。我已經算出了算法 ,但堅持實施。爲什麼我的腳本正在引發TypeError:'int'對象不可訂閱
def rotate(M):
#Let M = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
n = len(M)
temp = None
for i in range(0, n):
for j in range(i, n):
temp = M[i][j]
M[i][j] = M[j][i]
M[j][i] = temp
nby2 = int(n/2)
#error loop
for j in range(0, nby2):
for i in range(0, n):
temp = M[i][j]
M[i][j] = M[i][n - 1 - j]
M[i][n - 1 -j] = temp
#print(M[i][j], M[i][n - 1 - j])
for i in M:
print(i)
線temp = M[i][j]
是提高TypeError: 'int' object is not subscriptable
雖然print語句錯誤環路返回矩陣的元素沒有錯誤,上面的循環工作完全正常。
你認爲是一個'list'實際上是一個'int'。 – deceze
'M [n-1 -j] = temp'將一個整數直接賦值給'M'。在下面的迭代中,'M [i]'擊中了那些。 –
編輯我特意把M [n - 1 - j]而不是M [i] [n - 1 - j] – faishal28