深浅拷贝详解 二

深浅拷贝详解

引用:两个变量指向同一引用 eg:a =[1,2,3]  b= a  id(a)==id(b)

拷贝:是重新拷贝一份引用  内存地址不同

浅拷贝:copy.copy  
        对于一个对象的顶层拷贝
深拷贝:copy.deepcopy
        对于一个对象所有层次的拷贝(递归)
    两个变量 a=b 指向不同的内存地址 
        eg: a = [1,2,3,4]   c = copy.deepcopy(a)   ---> id(a) !=id(c)

注: copy.deepcopy-->一直深入到底
        a = [11,22,33]  b = [44,55,66]  c=[a,b] 
            e = copy.deepcopy(c)  e中的e[0]和e[1]的地址也是重新拷贝的

    copy.copy --->只深度一层
        a = [11,22,33]  b = [44,55,66]  c=[a,b] 
            e = copy.copy(c)  e中的e[0]和e[1]的地址却还是和a,b是一样
        当copy.copy(不可变类型时) ===>相当于浅拷贝
        a = [11,22,33]  b = [44,55,66]  c=(a,b) 
            e = copy.copy(c)  e的指向就是c的内存地址 e中的e[0]和e[1]的地址 和a,b是一样

    元组不一样  元组不可变  所以特殊  引用 和 拷贝 都是指向同一内存地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值