剖析python--直接赋值、深拷贝、浅拷贝

[Python]直接赋值、深拷贝、浅拷贝

以例示意

// python
import copy          //引入 copy 模块
a = [1, 2, [1, 2]]   //定义a
b = a     //"="为直接赋值,a、b共用一个地址
c = copy.copy(a)  //浅拷贝---这里引用copy模块的copy函数进行拷贝
                  //浅拷贝相当于在同一个地址(a)上进行贴标签(c)操作
                  //地址不变,标签增加 (a和c)
d = [ : ]    //与copy.copy()意义相同
e = copy.deepcopy(a)  //深拷贝,新建一个地址,且该地址包含的内容
                      //与离它最近的a地址内容相同
a.append(3)  //原地修改,在a列表的末尾添加3
             //注意,单纯的append()函数不产生返回值,不会生成副本,因此对c
             //不产生影响
a[2].append(3)  //虽然也是append()函数,但并不"单纯" ,则会产生返回值

输出结果:
    a = [1,2,[1,2,3],3]
    b = [1,2,[1,2,3],3]
    c = [1,2,[1,2,3]]
    d = [1,2,[1,2,3]]
    e = [1,2,[1,2]]




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值