qq_52920118 2022-03-30 18:04 采纳率: 50%
浏览 20
已结题

如何正确的使用索引值来获取列表的元素?

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

l

ist_in=[15,10,54,30,74,12,11,24,9,43,52,8,14,38,47,77,99,89,26]
n=len(list_in)
k=0
while k<n:
    if list_in[k]%2==0:
        list_in.remove(list_in[k])
        continue
    k+=1
return list_in

运行结果及报错内容
python
IndexError                                Traceback (most recent call last)
C:\Users\KING14~1\AppData\Local\Temp/ipykernel_20436/577291653.py in <module>
      3 k=0
      4 while k<n:
----> 5     if list_in[k]%2==0:
      6         list_in.remove(list_in[k])
      7         continue

IndexError: list index out of range

我的解答思路和尝试过的方法

上面代码里面的第五行一直报错,我尝试着把while下面的所有语句都删了,添加了一个print(list_in[k])是可以打印出整个列表的,k也一直在列表的长度范围内,但为什么把list_in[k]作为判断条件就会一直说list index out of range。

我想要达到的结果
  • 写回答

3条回答 默认 最新

  • 闹玩儿扣眼珠子 2022-03-30 18:20
    关注

    你都把这个list里的元素删了 那他肯定就没有原来的长度了
    比如你的list有20个元素,循环一次,你取的index是0 你删除了一个元素 那list就只有19个了
    第二次你取的的下标是1 你在删除一个元素 list就只有18了
    多次循环之后index一直在涨 可是list越来越小 自然就index超出范围了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月7日
  • 已采纳回答 3月30日
  • 创建了问题 3月30日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭