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

问题:

我有一个Python程序,很多字典工作。我必须复制数千次的字典。我需要钥匙和相关内容的副本。该副本将被编辑,不得与原始链接(例如,副本中的更改不得影响原件。)
键是字符串,值是整数(0/1)。
我目前使用一种简单的方式:

newDict = oldDict.copy()

对我的代码进行分析表明,复制操作大部分时间都是需要的。
是否有更快的替代方法dict.copy()方法?最快的是什么

回答:

看看Python dict操作的C source,你可以看到他们做了一个非常幼稚(但效率很高)的副本。它基本上归结为呼叫PyDict_Merge

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

这样做可以快速检查,如果他们是相同的对象,如果他们有对象。之后,它会对目标dict进行一次大量的一次性调整/分配,然后逐个复制这些元素。我看不到你比内置的copy()快得多

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Fast way to copy dictionary in Python

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 8 = 1