加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

列表索引超出范围,python

发布时间:2020-12-20 11:44:23 所属栏目: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个)数字,但是它被称为“索
我有一个问题,就是我有这样的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,5)]  
    for j in range(3):
        List_A.append(List_B[j][2])
    # Do other stuff

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读