之前在编写一个测试工具时发现了一个问题:如果将一个字典dict1赋给另外一个字典dict2,那么如果dict2的值发生改变,dict1也会随之改变,举个例子:
可以看到当dict2增加了一对键-值对时,dict1也发生了变化,通过打印dict2和dict1所占用的内存地址发现,当将dict1赋给dict2时,系统并未给dict2再单独分配一个地址,因此当dict2的值发生改变时,dict1也发生改变。
这个时候如果我们想将dict1赋给另外一个变量,而又不想让该变量的改变影响dict1的值该怎么做呢?这时候就要用到python的深拷贝deepcopy,具体用法如下:
可以看到用deepcopy会给被赋值分配一片新内存,而变量a的改变不会影响dict1的值。
未完待续,觉得有必要学习一下python各数据结构的存储方式