我有一个问题,就是我有这样的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