python中的深拷贝和浅拷贝和赋值拷贝

python中的深拷贝和浅拷贝

  • import copy

    a = [1, 2, 3,4, [‘a’, ‘b’]]
    b = a.copy()
    #就是浅拷贝
    c = a
    #给a的值贴上一个c的标签,和a的地位平等
    d = copy.copy(a)
    #浅拷贝
    e = copy.deepcopy(a)
    #深拷贝
    下面我们更改a的值,看一下b,c,d,e的值的更改情况

## 我们将a[0]的值改为100,a[4,1]的值改为'z'

a[0] = 100
a[4,1] = ‘z’
#我们来看一下b,c,d,e的值的变化
‘’’>>> import copy

a = [1, 2, 3,4, [‘a’, ‘b’]]
b = a.copy()
c = a
d = copy.copy(a)
e = copy.deepcopy(a)
a [0] = 100
a[4][1] = ‘z’
‘’’

b
[1, 2, 3, 4, [‘a’, ‘z’]]
浅拷贝:父类元素的基础元素改变,浅拷贝元素不变,但是引用类型的数据还是用的父类元素的,可以说这节约了内存吧

c
[100, 2, 3, 4, [‘a’, ‘z’]]
c跟a是完全一样的,不分父元素和子元素,两者任意一个变化,其他那个就会变化 (c和a占用1倍a的内存)

d
[1, 2, 3, 4, [‘a’, ‘z’]]
d就是浅拷贝(a和d占用内存为(1,2)倍内存,视具体情况而定))

e
[1, 2, 3, 4, [‘a’, ‘b’]]
深拷贝:就是在父元素的基础上产生了一个完全独立的元素,无论父元素怎么变化都与其无关(a和e占用a的两倍内存)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值