问题概述: 在码代码中,需要保存一个字典,用的update,后来发现update的值会随着原字典值得变化而变化。
而后使用deepcopy来保存字典。
update
a = { 1:{ 2:3}} b= {} b.update(a) print(b,1) a[1][2] = 4 print(b,2) print(id(a[1]),3) print(id(b[1]),3) #结果: # {1: {2: 3}} 1 # {1: {2: 4}} 2 # 5095520 3 # 5095520 3 #发现这两个前套字典中的内存地址是一个,所以改变一个另一个也改变
deepcopy
#deepcopyfrom copy import deepcopyc = {1:{2:3}}d = deepcopy(c)print(d,1)c[1][2] = 4print(d,2)print(id(c[1]),3)print(id(d[1]),3)#结果# {1: {2: 3}} 1# {1: {2: 3}} 2# 5750192 3# 54535776 3#这里发现两个id是不一样的