Python——列表深浅拷贝
文中对深浅拷贝讲的比较细。自己做下整理。
浅拷贝就是对引用的拷贝,只拷贝父对象,里面的数据不拷贝出来,其中的数据与原对象里面数据用的是相同的地址空间。
深拷贝就是对对象的资源的拷贝,拷贝父对象以及里面的子对象。深拷贝,重新开申请一块内存,与原来的地址不一样,重新定义一个变量,跟原对象一点关系也没有。
python中,深拷贝和浅拷贝仅仅是在内存当中对数据的一个应用。
深浅拷贝,可以通过查看变量的内存地址来判断。print(id(L)) 打印L的内存地址
import copy
a = [2,3,4,5]
a3 = a #浅拷贝,内存地址不变
a4 = copy.deepcopy(a) #深拷贝
print(id(a))
print(id(a3))
print(id(a4))
结果:
2544338106696
2544338106696
2544338104968