Глядя на источник C для операций Python dict
, вы можете видеть, что они делают довольно наивное (но эффективное) копирование. По сути, это сводится к вызову PyDict_Merge
:
PyDict_Merge(PyObject *a, PyObject *b, int override)
Это делает быструю проверку таких вещей, как, если они являются одним и тем же объектом, и если у них есть объекты в них. После этого он выполняет щедрое однократное изменение размера / выделения для целевого dict, а затем копирует элементы один за другим. Я не вижу, что вы получаете намного быстрее, чем встроенный copy()
.