矩阵转置(列表索引超出范围错误)

时间:2020-09-15 09:35:38

标签: python transpose indexoutofrangeexception

def transpose(A,size):
for i in range(size):
    for j in range(i,size):
        temp=A[i][j]
        A[i][j]=A[j][i]
        A[j][i]=temp

这是我对矩阵的transpose()函数,但是当我运行它时,编译器会抛出一个错误,指出列表索引超出范围,我不知道为什么。

1 个答案:

答案 0 :(得分:0)

将范围从(i,size)更改为(size)将解决超出范围的错误

def transpose(A,size):
    for i in range(size):
        for j in range(size):
            temp=A[i][j]
            A[i][j]=A[j][i]
            A[j][i]=temp

但是由于引用,矩阵A不会被修改

最好使用新的矩阵进行转置

def transpose(A,size):
  B=list([0 for i in range(size)] for j in range(size))
  for i in range(size):
    for j in range(size):
      B[i][j]=A[j][i]
            
  print(B)