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

Python遍历列表修改全部元素为8时运行报错,原因是什么?

问题原因
  • 你代码中for i in list_遍历得到的i是列表的元素值,而非列表的索引。你传入的列表为[1,2,3,4,5,6],当遍历到最后一个元素值6时,执行list_[i] = 8等价于访问list_[6],但列表索引从0开始计数,长度为6的列表合法索引范围是0~5,访问索引6会抛出IndexError: list assignment index out of range错误。
  • 就算未触发索引报错,该逻辑也无法实现将所有值改为8的效果:比如第一次遍历拿到的i=1,仅会修改索引1位置的元素,索引0位置的元素不会被改动。
修正方案

方案1:通过列表长度遍历索引

def looping(list_):
    for i in range(len(list_)):
        list_[i] = 8
    return list_
    
_list=[1,2,3,4,5,6]
print(looping(_list))

方案2:通过enumerate遍历索引

def looping(list_):
    for idx, _ in enumerate(list_):
        list_[idx] = 8
    return list_
    
_list=[1,2,3,4,5,6]
print(looping(_list))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:39:00