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

解决Python生成指定连续子列表时的IndexError错误

解决列表索引越界问题

你的代码触发IndexError是因为循环范围设置错误:range(len(mylist))会让j遍历0、1、2、3四个值,但当j=2时,mylist[j+2]等价于mylist[4],而原列表的索引只有0到3,直接超出范围;j=3时越界更严重,所以报错。

要生成预期的2个长度为3的子列表,你可以通过以下几种方式修改代码:

方法1:调整循环范围+直接索引

把循环范围改成range(len(mylist)-2),这样j只会取0和1两个有效值,确保j+2不会超出列表索引:

mylist = [0, -7, 4, -1]
for j in range(len(mylist)-2):
    print([mylist[j], mylist[j+1], mylist[j+2]])

方法2:使用列表切片(更简洁)

Python的列表切片mylist[j:j+3]可以直接取出从索引j开始的3个元素,代码更简洁易读:

mylist = [0, -7, 4, -1]
for j in range(len(mylist)-2):
    print(mylist[j:j+3])

方法3:列表推导式批量生成

如果需要先保存所有子列表再处理,可以用列表推导式一次性生成:

mylist = [0, -7, 4, -1]
sub_lists = [mylist[j:j+3] for j in range(len(mylist)-2)]
for lst in sub_lists:
    print(lst)

以上三种写法都会输出预期结果,且不会触发索引越界错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:20:16