transposta = []
nova_linha = []
for i in range (len(matriz)):
for j in range(len(matriz[i])):
nova_linha.append(matriz[i][j])
i+=1
transposta.append(nova_linha)
j+=1
nova_linha = []
return transposta
我在行nova_linha.append(matriz [i] [j])
中得到列表索引超出范围错误为什么会这样?
答案 0 :(得分:4)
这样可以正常工作:
for i in range (len(matriz)):
for j in range(len(matriz[i])):
nova_linha.append(matriz[i][j])
transposta.append(nova_linha)
nova_linha = []
但是,您添加了i += 1
和j += 1
行。 for
上的range
循环已经为您解决了这个问题。
通常情况下,这将是无害的,因为你的改变只会在下一次循环中被抛弃 - 但你也让它们落后。所以现在,每次通过内部循环,你都会增加i
,并且很快就会跑掉矩阵的底部。