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

如何在Python中高效更新嵌套字典的元素数值

嵌套字典批量更新值的最优高效方案

原字典

dic = {1:{"Warehouse1":100, "Warehouse2":100, "Warehouse3":100}, 
       2:{"Warehouse1":200, "Warehouse2":200, "Warehouse3":200}, 
       3:{"Warehouse1":300, "Warehouse2":300, "Warehouse3":300},
       4:{"Warehouse1":400, "Warehouse2":400, "Warehouse3":400}}

预期结果

dic = {1:{"Warehouse1":250, "Warehouse2":250, "Warehouse3":250}, 
       2:{"Warehouse1":230, "Warehouse2":230, "Warehouse3":230}, 
       3:{"Warehouse1":340, "Warehouse2":340, "Warehouse3":340},
       4:{"Warehouse1":500, "Warehouse2":500, "Warehouse3":500}}

最优实现方法

先明确每个外层键对应的增量:键1加150,键2加30,键3加40,键4加100。最高效的方式是原地修改原字典,避免额外内存开销,同时用增量映射表管理每个键的增加值,代码如下:

# 定义每个外层键对应的增量
increments = {1: 150, 2: 30, 3: 40, 4: 100}

# 嵌套循环原地更新
for key, warehouse_dict in dic.items():
    add = increments[key]
    for warehouse in warehouse_dict:
        warehouse_dict[warehouse] += add

方案优势

  • 高效低开销:直接修改原字典的可变内层字典,无需创建新结构,内存占用极低。
  • 清晰易维护:增量映射表单独定义,后续调整只需修改increments,逻辑一目了然。
  • 时间复杂度最优:整体时间复杂度为O(n)(n为所有仓库值的总数),是理论上的最优效率。

运行代码后,原字典dic会直接更新为预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:02:24