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

如何复制字典元素并修改键值后重新添加至字典

实现字典复制、键名修改与值更新的方案

要从dict1生成目标dict2,核心是完成嵌套字典的独立复制、键名修改和指定列表值的更新,以下是两种实用实现方式:

方式一:使用深拷贝(通用型)

如果嵌套结构层级较多,用copy模块的深拷贝能确保新字典和原数据完全独立,避免后续修改互相影响:

import copy

dict1 = {"top":{"left":[100],"right":[100],"down":[200]}}

# 深拷贝原字典的top对应值,生成top1的数据
top1_data = copy.deepcopy(dict1["top"])
dict2 = {"top1": top1_data}

# 再次深拷贝原数据,修改down列表的元素后生成top2的数据
top2_data = copy.deepcopy(dict1["top"])
top2_data["down"][0] += 100  # 针对down列表的第一个元素加100
dict2["top2"] = top2_data

# 输出结果
print(dict2)
# 输出:{'top1': {'left': [100], 'right': [100], 'down': [200]}, 'top2': {'left': [100], 'right': [100], 'down': [300]}}

方式二:手动复制(直观型)

如果嵌套层级简单,手动复制每个键对应的列表,更直观可控:

dict1 = {"top":{"left":[100],"right":[100],"down":[200]}}

# 手动复制top的所有列表值,生成top1的数据
top1_data = {
    "left": dict1["top"]["left"].copy(),
    "right": dict1["top"]["right"].copy(),
    "down": dict1["top"]["down"].copy()
}

# 复制并修改down的值,生成top2的数据
top2_data = {
    "left": dict1["top"]["left"].copy(),
    "right": dict1["top"]["right"].copy(),
    "down": [val + 100 for val in dict1["top"]["down"]]
}

# 组合成目标字典dict2
dict2 = {"top1": top1_data, "top2": top2_data}

注意事项

  • 不能直接用top_data = dict1["top"]这种浅赋值,因为这样新字典和原字典会共享嵌套的列表对象,修改其中一个的down值会影响另一个。
  • 如果down对应的是单个数值而非列表,直接修改数值即可,不用处理列表的元素操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:05:22