python - 在 Python 中复制字典的快速方法

标签 python performance dictionary copy

我有一个 Python 程序,可以经常使用字典。我必须复制字典数千次。我需要 key 和相关内容的副本。副本将被编辑,并且不得链接到原件(例如,副本中的更改不得影响原件。)

键是字符串,值是整数 (0/1)。

我目前使用一个简单的方法:

newDict = oldDict.copy()

分析我的代码显示复制操作花费了大部分时间。

dict.copy() 方法是否有更快的替代方法?什么是最快的?

最佳答案

C source对于 Python dict 操作,您可以看到它们做了一个非常幼稚(但高效)的复制。它本质上归结为对 PyDict_Merge 的调用:

PyDict_Merge(PyObject *a, PyObject *b, int override)

这会快速检查它们是否是同一个对象以及它们是否有对象。之后,它会对目标 dict 进行一次慷慨的 resize/alloc,然后一个一个地复制元素。我没有看到你比内置的 copy() 快得多。

关于python - 在 Python 中复制字典的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5861498/

相关文章:

python - 使用预定义键创建字典

在主进程中从标准输入进行阻塞读取时,Python 子进程阻塞

python - 无效请求错误 : Could not find a FROM clause to join from

performance - Netbeans 7.2 FTP 非常慢

performance - 一系列 x86 call/ret 指令是否形成依赖链?

c++ - 在 map C++ 中创建特定大小的 vector

python - 用整数列表/元组替换 Pandas DataFrame 列中的值

python - 子模块导入主模块

performance - WhatsApp 为何能如此快速地显示讨论内容?

用于加权倒排索引的 Python 3 字典