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

高效将公共字典键值对复制到字典列表并保序,deepcopy是否最优?

结论

从CPU耗时角度来看,使用deepcopy完全不是最高效的实现方式,属于不必要的性能浪费。

原因说明

  1. 该场景中公共字典的value都是不可变字符串,没有嵌套的可变结构,完全不需要用到深拷贝能力。deepcopy本身会递归遍历对象的所有嵌套结构做校验和复制,会额外产生大量无意义的CPU开销,同等场景下耗时是普通浅拷贝/字典解包的10~30倍。
  2. Python 3.7及以上版本默认保留字典的插入顺序,只要合并时先放置公共字典的内容,再放置数据字典的内容,就能满足公共字段始终在最前方的要求。

最优实现代码

# 提取公共字典
common_dict = list_common_dictionary[0]
# 列表推导式+字典解包合并,C层面实现运算,CPU耗时最低
output_dictionary = [{**common_dict, **item} for item in list_data_dictionary]

如果需要兼容更早的Python版本,也可以用浅拷贝+update的方式实现,性能和字典解包接近:

common_dict = list_common_dictionary[0]
output_dictionary = []
for item in list_data_dictionary:
    new_item = common_dict.copy()
    new_item.update(item)
    output_dictionary.append(new_item)

性能对比参考(10万次运算测试)

  • 字典解包方案:约12ms
  • 浅拷贝+update方案:约15ms
  • deepcopy+update方案:约210ms

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:27:03