Python 列表索引超出范围,显然没有问题

Python 列表索引超出范围,显然没有问题,python,list,indexing,range,Python,List,Indexing,Range,我在nova_linha.append(matriz[I][j]行中获取列表索引超出范围错误) 为什么会发生这种情况?这样做很好: 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)

我在nova_linha.append(matriz[I][j]行中获取列表索引超出范围错误)

为什么会发生这种情况?

这样做很好:

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
但是,您添加了执行
i+=1
j+=1
的行。在
范围内的
for
循环已经为您解决了这个问题

通常情况下,这是无害的,因为它是无用的,因为您的更改只会在下一次通过循环时被丢弃,但您也会使它们倒退。现在,每次通过内部循环,你都会增加
i
,很快你就会从矩阵的底部跑出来。

这很好:

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
但是,您添加了执行
i+=1
j+=1
的行。在
范围内的
for
循环已经为您解决了这个问题


通常情况下,这是无害的,因为它是无用的,因为您的更改只会在下一次通过循环时被丢弃,但您也会使它们倒退。所以现在,每次通过内部循环,你都会增加
i
,很快你就会从矩阵的底部跑出来。

请发布整个异常,而不是对它的松散描述。再加上复制异常的代码。这整件事似乎是在尝试转置一个方形矩阵(存储为列表列表),它。但当然,也值得学习如何显式编写它(以及如何使用
进行
循环)。请发布整个异常,而不是对它的松散描述。加上复制异常的代码。这整件事似乎是试图转置一个方阵(存储为列表列表),它可以。但是当然,学习如何显式编写它也是值得的(以及如何使用
进行
循环)。