You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python列表索引越界问题:长度判断后仍访问不存在元素

解决列表索引越界的问题

嘿,我一眼就看出问题所在啦!你的代码逻辑里,判断条件写错了,才导致还是会触发索引越界错误。

先看你原来的判断:

if len(my_list) > 3: # Only if lists is longer than 4 items

这里注释写的是“只有列表超过4个元素时”,但len(my_list) >3其实包含了长度为4的情况——而长度为4的列表,索引最大是3(因为列表索引从0开始),这时候去访问my_list[4]自然就会报错啦!

要安全访问第5个元素(也就是索引为4的元素),列表的长度必须至少是5。所以正确的判断条件应该是下面两种中的任意一种:

  • if len(my_list) >= 5: (明确表示列表长度大于等于5)
  • if len(my_list) > 4: (和你的注释意思完全匹配)

修正后的代码大概是这样:

with open(my_file, 'r') as my_probe:
    for fileLine in my_probe:
        src_string = fileLine.split()
        my_list = list(src_string)
        # 只有当列表至少有5个元素时,才访问第5个元素
        if len(my_list) >= 5:
            print("Info I need: " + my_list[4])

另外提个小优化:src_string = fileLine.split()本身返回的就是列表,所以my_list = list(src_string)这一步其实是多余的,直接用src_string就可以啦,能稍微简化代码:

with open(my_file, 'r') as my_probe:
    for fileLine in my_probe:
        my_list = fileLine.split()
        if len(my_list) >= 5:
            print("Info I need: " + my_list[4])

内容的提问来源于stack exchange,提问作者Asenski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:35:43