import copy #浅拷贝 #copy.copy() #深拷贝 #copy.deepcopy() #赋值 #a = '123' #b = a a1 = 123123 a2 = 123123 #查看 变量的内存地址 print(id(a1)) print(id(a2)) a3 = a1 print(id(a3)) #这里看到 通过 赋值 他们永远用的都是同一个内存地址 #下面看一个 浅拷贝,与上面的内存地址 是 同一个内存地址 a4 = copy.copy(a3) print(id(a4))
深浅拷贝应用
dic = { "cpu:":[80,], "mem:":[80,], "disk:":[80] } # print("原来:",dic) new_dic = copy.copy(dic) #浅拷贝 修改 cpu 的第 0个元素 修改成 50 new_dic['cpu:'][0] = 50 print("原修改后::",dic) #正常来说 修改后的 只是修改了新的 new_dic 但是这里看到 修改后 原来的 dic 的cpu 的值 也被修改了 print("new修改后:",new_dic) #输出: # 原修改后:: {'cpu:': [50], 'mem:': [80], 'disk:': [80]} # 修改后: {'cpu:': [50], 'mem:': [80], 'disk:': [80]} ##深拷贝 修改 cpu 的第 0个元素 修改成 50 new_dic = copy.deepcopy(dic) new_dic['cpu:'][0] = 50 print("原修改后:",dic) print("new修改后:",new_dic) #输出: # {'cpu:': [80], 'mem:': [80], 'disk:': [80]} # {'cpu:': [50], 'mem:': [80], 'disk:': [80]}