Python - 如何将 ImmutableDict 复制到可变字典?

Lao*_*581 3 python immutability

我正在尝试在字典上制作一份硬拷贝,以避免修改原始字典的值。

这是我的代码:

import copy
d1 = {1: 1}
d2 = copy.deepcopy(d1)
d2[1] = None
Run Code Online (Sandbox Code Playgroud)

如果d1是 ImmutableDict 怎么办?如何复制并允许修改?

import immutabledict
d1 = immutabledict.immutabledict({1: 1})
d2 = copy.deepcopy(d1)
d2[1] = None  # TypeError: 'immutabledict' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)

Kra*_*las 7

调用dict将创建副本并允许您变异d2

import immutabledict
d1 = immutabledict.immutabledict({1: 1})
d2 = dict(d1)
d2[1] = None
Run Code Online (Sandbox Code Playgroud)

这会正确更新d2并且不会改变d1