列表索引超出范围,python

我有一个问题,就是我有这样的1D列表:

List_A = []

我还有另一个列表,如下所示:

List_B = [(1,2,3),(2,3,4),(3,4,5)]

现在我尝试使用:

for i in range(3):
List_A[i] = List_B[i][2]

这意味着,我想从List_B到List_A取每个最后(第3个)数字,但是它被称为“索引超出范围”,那么问题是什么?非常感谢你的帮助

我知道append方法,但我认为我不能使用它,因为我的代码在循环中,List_B中的值在每一步都会发生变化,例如:

List_A = []

for i in range(5):
List_B = [(i*1,i*2,i*3),(i*2,i*3,i*4),(i*3,i*4,i*5)]  
    for j in range(3):
        List_A[j] = List_B[j][2]

也就是说,如果我使用append方法,List_A将放大到15个元素大小,但我需要在每个i循环中刷新值.

最佳答案 问题在于List_A只有一个值.在这里,您尝试更改列表中没有的索引1和2的值.所以你得到了错误.

在将List_A声明为[]后使用append

for i in range(3):
     List_A.append(List_B[i][2])

这可以在单个list-comp中完成

List_A = [i[2] for i in List_B]

发表编辑 –

在第一个循环之后立即进行初始化

for i in range(5):
    List_A = []                          # Here 
    List_B = [(1,2,3),(2,3,4),(3,4,5)]  
    for j in range(3):
        List_A.append(List_B[j][2])
    # Do other stuff
点赞