好好睡觉
熬夜的不要

Python中的浅拷贝和深拷贝

python中的浅拷贝和深拷贝是经常在面试中遇到的问题。

  • 浅拷贝(copy): 拷贝父对象,不会拷贝对象的内部的子对象
  • 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

赋值

我们先看看赋值的实例

a = {1:['a']}
b = a
a[1].append('b')

很明显,赋值引用,a 和 b 都指向同一个对象。

浅拷贝实例

a = {1:['a']}
b = a.copy()
a[1].append('b')

可以看到,浅复制不会拷贝字典中的list对象。当我们向a的list中添加值时,b中的也变了。

深拷贝实例:

import copy
a = {1:['a']}
b = copy.deepcopy(a)
a[1].append('b')

可以看到,他们的对象和子对象都是相互独立的,当我们向a的list中添加值时,b不会受影响。

赞(0) 打赏
未经允许不得转载:数据谷 » Python中的浅拷贝和深拷贝
分享到: 更多 (0)

相关推荐

  • 暂无文章

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏