我有一个 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/