小编典典

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

python

我有一个Python程序,可与字典配合使用。我必须复制字典数千次。我需要密钥和关联内容的副本。该副本将被编辑,并且不得链接到原始副本(例如,副本中的更改不得影响原始副本。)

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

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

newDict = oldDict.copy()

对我的代码进行性能分析表明,复制操作花费了大部分时间。

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


阅读 215

收藏
2020-12-20

共1个答案

小编典典

查看Python操作的C源代码dict,您会发现它们做的非常幼稚(但有效)。从本质上讲,它可以归结为PyDict_Merge

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

这样可以快速检查是否是同一对象,以及其中是否包含对象。之后,它会对目标dict进行大量的一次大小调整/分配,然后将其一一复制。我看不到您的速度比内置速度快得多copy()

2020-12-20