我已经写了一个脚本来顺时针旋转矩阵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