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

如何在不删除原有内容的情况下更新嵌套字典

如何在保留原有内容的前提下更新嵌套字典

嘿,这个问题我之前也碰到过!你现在的问题在于,你调用的是外层databody_item的update()方法,这会直接把interests这个键对应的整个值替换成新的字典,而不是去更新嵌套在里面的那个字典。要实现保留原有内容的嵌套字典更新,有几种简单的方法:

  • 直接调用嵌套字典的update方法(最直观的方式)
    直接定位到内层的interests字典,调用它自己的update()方法,这样就只会更新内层字典的内容,不会替换整个键值对:

    databody_item = {'name': 'Kermit', 'interests': {'test1': True}}
    databody_item['interests'].update({'test2': True})
    # 结果:{'name': 'Kermit', 'interests': {'test1': True, 'test2': True}}
    
  • 使用字典解包(Python 3.5+)
    如果你希望生成一个新的内层字典而不是修改原有的,可以用字典解包语法合并原有内容和新内容,再赋值回去:

    databody_item['interests'] = {**databody_item['interests'], 'test2': True}
    

    这种方式会创建一个包含原有键值对和新键值对的新字典,如果新字典里有和原有重复的键,新值会覆盖旧值。

  • 使用合并运算符(Python 3.9+)
    Python 3.9及以上版本支持|和|=运算符来合并字典,用法更简洁:

    # 方式1:生成新字典并赋值
    databody_item['interests'] = databody_item['interests'] | {'test2': True}
    # 方式2:直接在原字典上合并
    databody_item['interests'] |= {'test2': True}
    

    这两种方式的效果和字典解包类似,|=会直接修改原内层字典,而|会返回新的字典。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:05:59