我试图在代码开头存储一个字典模板,大部分函数将使用这个模板:
- 字典:键 = 客户名称,值 = 字典2
- 字典2:键 = 用户名称,值 = None
我用所有客户和他们的用户来填充它。然后代码的每个部分都可以复制这个字典并生成自己的输出。目标是每个输出都有相同的“基本”字典结构,就像一个模板,其中的None可以修改。
对于每个使用这个字典的过程,我使用以下内容:
process1dict = clientdict
# processing 1
output1dict = ... #modified version of original clientdict, the None values have been replaced by dictionaries/lists
process2dict = clientdict
# processing 2
output2dict = ... #same here but could be different
我遇到的问题是,每次将 cliendict 复制到一个进程中,它都会发生变化!我注意到这是因为在我的初始 cliendict 中有 None
值,它会根据每个进程的输出而改变(当然取决于每个进程的输出)。
编辑:我找到了 copy 库,但是 copy()
似乎对我的情况没有帮助。我将尝试使用 deepcopy(),但为什么 copy()
不起作用?为什么会用 deepcopy() 起作用呢?
clientdictDNT
只会指向相同的底层字典,所以当你修改clientdict
时它也会被修改,你也可以使用dict(clientdict)
或clientdict.copy()
。 - TemporalWolf