python 中数据的浅拷贝与深拷贝

时间:2021-08-06 22:19:29

    数据复制时,会涉及到浅拷贝与深拷贝,简单理解就是

    浅拷贝:两个数据变量复制后指向同一个内存地址;

    深拷贝:两个数据变量复制后指向了不同的内容地址;

>>> a=[3,2]
>>> id(a)
32495952
>>> b=a
>>> id(b)	#a,b变量的地址相同
32495952
>>> b[0]=1
>>> a		#对b变量的改变同时也是对a变量的操作
[1, 2]
>>> import copy
>>> b=copy.deepcopy(a)	#深拷贝命令
>>> id(b)	#拷贝后指向了新的内存地址
140261733704480
>>> b
[1, 2]
>>> a	#import前对b变量的改变后导致a,b=[1, 2]
[1, 2]
>>> b[0]=9	
>>> b	#此时对变量b的操作不会影响变量a的值
[9, 2]
>>> a
[1, 2]