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

如何通过键链列表修改Python嵌套字典的深层值?

动态修改嵌套字典/列表的值

假设你已经把键链整理成了列表,比如对应a["key0"][0]["key01"]的键链是["key0", 0, "key01"],可以通过以下方法实现修改:

实现思路

遍历键链的前n-1个元素,定位到要修改的目标所在的父对象(可能是字典或列表),最后用键链的最后一个元素直接修改父对象对应位置的值。因为字典和列表都是可变对象,操作会直接作用于原数据。

代码实现

def update_nested(data, key_chain, new_value):
    # 定位到目标的父级对象
    parent = data
    for key in key_chain[:-1]:
        parent = parent[key]
    # 修改目标值
    parent[key_chain[-1]] = new_value

# 测试示例
a = {"key0" : [{"key01":1}], "key1" : 2}
# 键链列表
keys = ["key0", 0, "key01"]
# 修改值为2
update_nested(a, keys, 2)
print(a)  # 输出: {'key0': [{'key01': 2}], 'key1': 2}

补充说明

  • 如果键链中的某个元素不存在(比如写错了键名或索引),会抛出KeyError(字典)或IndexError(列表),如果需要容错,可以在遍历过程中添加异常捕获逻辑。
  • 这个方法同时支持字典和列表混合嵌套的结构,只要键链中的元素对应正确的类型(字典用键名,列表用索引)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:50:23