零基础小白Python入门必看:通俗易懂,搞定深浅拷贝( 二 )
【零基础小白Python入门必看:通俗易懂,搞定深浅拷贝】再看看下面的代码
a = [1, 2, (3, 4)]b = a.copy()print(id(a)) # 59162536print(id(b)) # 60143400# 改变a中的可变对象a[-1] += (5, )# [1, 2, (3, 4, 5)]print(a)# [1, 2, (3, 4)]print(b)复制代码
对于元组(3, 4) , 因为元组不可变 , 所以在元组中新增了元素5 , 实际上是生成了新的元组对象 。 而b列表中的元组引用并没有发生改变 。
通过上面的两个例子可以看出浅拷贝可能会带来的弊端 , 在使用中需要大家进行相应的判断 。 或者去完整的拷贝某个对象 , 即 深拷贝 。
文章插图
深拷贝所谓深拷贝呢 , 就是重新分配一个内存空间(新对象) , 将原对象中的所有元素通过递归的方式进行拷贝到新对象中 。
在Python中 通过copy.deepcopy() 来实现深拷贝 。
import copya = [1, 2, (3, 4)]# 深拷贝b = copy.deepcopy(a)# 因为生成了新的对象所以 , 返回Falseprint(a is b)a[-1] += (5,)a.append(6)print(a) # [1, 2, (3, 4, 5), 6]print(b) # [1, 2, (3, 4)] 深拷贝后的对象 , 根本不受原对象的任何影响复制代码
...
最后多说一句 , 小编是一名python开发工程师 , 这里有我自己整理了一套最新的python系统学习教程 , 包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等 。 想要这些资料的可以关注小编 , 并私信“01”即可领取 。
推荐阅读
- 计算机专业大一下学期,该选择学习Java还是Python
- 想自学Python来开发爬虫,需要按照哪几个阶段制定学习计划
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 视频小白们的外挂装备:百视悦R5监视器+T2提词器套装上手
- 市科委与联影集团联合首设“探索者计划”,共推基础及应用基础研究
- 从事Java开发时发现基础差,是否应该选择辞职自学一段时间
- 2021年Java和Python的应用趋势会有什么变化?
- 非计算机专业的本科生,想利用寒假学习Python,该怎么入手
- 用Python制作图片验证码,这三行代码完事儿
- 历时 1 个月,做了 10 个 Python 可视化动图,用心且精美...