我有一个Python程序,可与字典配合使用。我必须复制字典数千次。我需要密钥和关联内容的副本。该副本将被编辑,并且不得链接到原始副本(例如,副本中的更改不得影响原始副本。)
键是字符串,值是整数(0/1)。
我目前使用一种简单的方法:
newDict = oldDict.copy()
对我的代码进行性能分析表明,复制操作花费了大部分时间。
有没有更快的替代dict.copy()方法?什么是最快的?
dict.copy()
查看Python操作的C源代码dict,您会发现它们做的非常幼稚(但有效)。从本质上讲,它可以归结为PyDict_Merge:
dict
PyDict_Merge
PyDict_Merge(PyObject *a, PyObject *b, int override)
这样可以快速检查是否是同一对象,以及其中是否包含对象。之后,它会对目标dict进行大量的一次大小调整/分配,然后将其一一复制。我看不到您的速度比内置速度快得多copy()。
copy()