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

Python如何按索引合并字典列表与嵌套列表新增键值对

报错原因

你遇到的TypeError: list indices must be integers or slices, not str是因为*x是存储字典的外层列表,不是单个字典对象*。Python列表仅支持整数、切片作为索引访问元素,不支持直接用字符串键给列表本身赋值,所以直接写x["resource_allocation"] = lst必然触发报错。

正确实现方法

你需要按索引位置一一对应,给x里的每一个字典单独新增resource_allocation键,再绑定lst同索引的子列表作为值。

写法1:直接修改原列表x(无新列表生成)

用enumerate同时拿到遍历的索引和当前字典对象,直接给字典赋值即可:

for index, provider_dict in enumerate(x):
    provider_dict["resource_allocation"] = lst[index]

执行完后原x列表里的每个字典就会新增对应键,直接使用x就是你要的合并结果。

写法2:生成全新的合并列表(不修改原x数据)

如果你不想改动原始的x列表,可以遍历的时候拷贝原字典生成新对象,组装成全新的结果列表:

merged_result = []
for index, provider_dict in enumerate(x):
    # 浅拷贝原字典,避免修改原始数据
    current_dict = provider_dict.copy()
    current_dict["resource_allocation"] = lst[index]
    merged_result.append(current_dict)
注意事项
  • 使用前请确认x和lst长度一致,若lst长度小于x会触发索引越界错误,若lst长度大于x,超出部分的子列表不会被使用
  • 第一种写法里遍历拿到的provider_dict是x中存储的原字典引用,赋值操作会直接修改原列表内的字典内容,不需要额外给x重新赋值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:42:29