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

Python将列表转换为同默认键字典时索引越界问题解决

报错原因
  • 索引越界的核心问题是初始化结构时,jobs 对应的列表里只放了1个空字典:{'jobs':[{}]},此时 dict['jobs'] 的长度为1,但循环会遍历range(3)取0、1、2三个索引,访问到索引1时就超出了列表现有长度,直接触发报错。
  • 你写的目标字典结构存在语法错误,列表内的单个字典不需要额外套一层中括号,合法的目标结构应为 {'jobs': [{'id':'a'}, {'id':'b'}, {'id':'c'}]}。
  • 代码里还有一处笔误:循环内取列表值写的是list[key],但list是Python内置类型名,你的实际列表变量名是lst。
  • 额外提醒:不要用dict作为自定义变量名,会覆盖Python内置的字典类型,容易引发后续未知报错。
正确实现方法

最简洁的写法是直接用列表推导式生成目标结构,不需要提前初始化空位:

lst = ['a', 'b', 'c']
result = {'jobs': [{'id': item} for item in lst]}
print(result)

运行输出:

{'jobs': [{'id': 'a'}, {'id': 'b'}, {'id': 'c'}]}

如果习惯用显式循环写法,可以每次迭代时往列表里追加新字典:

lst = ['a', 'b', 'c']
result = {'jobs': []}
for item in lst:
    result['jobs'].append({'id': item})
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 09:12:15