import copy#浅拷贝#copy.copy()#深拷贝#copy.deepcopy()#赋值#a = '123'#b = aa1 = 123123a2 = 123123#查看 变量的内存地址print(id(a1))print(id(a2))a3 = a1print(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个元素 修改成 50new_dic['cpu:'][0] = 50print("原修改后::",dic) #正常来说 修改后的 只是修改了新的 new_dic 但是这里看到 修改后 原来的 dic 的cpu 的值 也被修改了print("new修改后:",new_dic)#输出:# 原修改后:: {'cpu:': [50], 'mem:': [80], 'disk:': [80]}# 修改后: {'cpu:': [50], 'mem:': [80], 'disk:': [80]}##深拷贝 修改 cpu 的第 0个元素 修改成 50new_dic = copy.deepcopy(dic)new_dic['cpu:'][0] = 50print("原修改后:",dic)print("new修改后:",new_dic)#输出:# {'cpu:': [80], 'mem:': [80], 'disk:': [80]}# {'cpu:': [50], 'mem:': [80], 'disk:': [80]}