Python中拷贝功能
在python中可以导入的copy模块,在copy模块中存在copy与deepcopy,其区别如下:
copy:当数据类型中内部还有引用类型数据时,则copy模块只能拷贝第一层,例子如下:
a=[1,2,3]
b=[4,5,6]
# 浅拷贝
c=[a,b]
f=copy.copy(c)
a.append(10)
print(id(f))
print(id(c))
当进行打印是,f与c的地址部位同一个,但是当输出f[0]与c[0]时,均输出以下结果:
[1, 2, 3, 10]
原因为使用copy.copy进行复制时,只是将第一层数据进行了拷贝,内部数据依然指向同一地址;
当时用一下代码时,输出结果为同一个
c=(a,b)
e=copy.copy(c)
print(id(c))
print(id(e))
以上结果原因为:元祖为不可变类型,因此在拷贝时,不可变类型的数据使用copy.copy不会进行地址的改变
可使用copy.copy进行判断类型是否为可变类型
浙公网安备 33010602011771号