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进行判断类型是否为可变类型
posted @ 2020-10-28 09:37  @王琳  阅读(191)  评论(0)    收藏  举报