深刻理解python中浅拷贝与深拷贝

一,python中浅拷贝与深拷贝
1,区别
当深浅拷贝里面只有值数据类型的话,这时候深拷贝与浅拷贝是相同 的。当做一个拷贝的话(无论是深浅),因为只有值数据类型。它的拷贝是深拷贝。
例子:

from copy import deepcopy
a = [1,'str']
b = a.copy()
a.append(2)
print(b)
# 结果
# [1, 'str']

可见深浅拷贝的话只是对里面含有引用数据类型。
二:深拷贝
深拷贝的话就是对里面含有引用数据类型的话来进行的,对其进行深拷贝的话,在原来的数据中更改的话,不影响深拷贝之后的数据
例子

from copy import deepcopy
a = [1]
b = [a, 'test']
c = b.copy()
# 浅拷贝
a = a.append('追加a的值')
print(c)
# 结果: [[1, '追加a的值'], 'test']
#可见浅拷贝里面有引用类型的话,当原引用类型变得话,浅拷贝的数据也变
from copy import deepcopy
a = [1]
b = [a, 'test']
c =deepcopy(b)
# 深拷贝
a = a.append('追加a的值')
print(c)
# 结果 [[1], 'test']
# 可见原引用类型改的话,不影响深拷贝的数据

注意:切片
切片操作之后如果结果里面没有引用类型的数据那么就是深拷贝
但是如果结果里含有引用类型的话就是浅拷贝

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值