列表索引超出范围,显然没有错

时间:2018-05-05 00:25:15

标签: python list indexing range

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])

中得到列表索引超出范围错误

为什么会这样?

1 个答案:

答案 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 += 1j += 1行。 for上的range循环已经为您解决了这个问题。

通常情况下,这将是无害的,因为你的改变只会在下一次循环中被抛弃 - 但你也让它们落后。所以现在,每次通过内部循环,你都会增加i,并且很快就会跑掉矩阵的底部。