python怎么设置颜色深浅变化_从底层剖析Python深浅拷贝

原标题:从底层剖析Python深浅拷贝

拷贝的用途

拷贝就是copy,目的在于复制出一份一模一样的数据。使用相同的算法对于产生的数据有多种截然不同的用途时就可以使用copy技术,将copy出的各种副本去做各种不同的操作。

值得一提的是绝大部分编程语言中对于copy都有深浅拷贝的概念,所以充分的理解本章节的知识也是在为今后学习其他编程语言少走弯路。

在Python中,除开手动deepcopy(),其他的任何操作都是浅拷贝。

Python = 赋值示例

好了,废话不多说。直接进入主题,上代码:

尝试修改li1,查看li2的变化:

赋值结论:

本体

1.修改不可变类型数据(如:第一层的str)

2.修改可变数据类型中的数据(如:第二层小容器list中的数据)

对应关系

拷贝体

1.不保持原本体中的值,跟随本体变化

2.不保持原本体中的值,跟随本体变化

底层原理

Python 浅拷贝示例

浅拷贝,用到list数据类型自带的方法,copy()。我们来看一看会怎么样:

尝试修改li1,查看li2的变化:

浅拷贝结论:

本体

1.修改不可变类型数据(如:第一层的str)

2.修改可变数据类型中的数据(如:第二层小容器list中的数据)

对应关系

拷贝体

1.保持原本体中的值,不发生变化

2.不保持原本体中的值,跟随本体变化

底层原理

Python 深拷贝示例

使用深拷贝需要导入Python的内置库,copy,具体使用方式还是看代码:

尝试修改li1,查看li2的变化:

深拷贝结论:

本体

1.修改不可变类型数据(如:第一层的str)

2.修改可变数据类型中的数据(如:第二层小容器list中的数据)

对应关系

拷贝体

1.保持原本体中的值,不发生变化

2.保持原本体中的值,不发生变化

底层原理

其他图示

b = a: 赋值引用,a 和 b 都指向同一个对象。

b = a.copy():浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。

b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值