前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中的深拷贝与浅拷贝

python中的深拷贝与浅拷贝

作者头像
生信编程日常
发布2020-04-01 16:02:43
3940
发布2020-04-01 16:02:43
举报

python中的直接赋值、浅拷贝和深拷贝很容易让人混淆。

1.赋值

a = ['zero', [1,2,3]]
b = a

2.浅拷贝(shallow copy)

import copy
c = copy.copy(a) 

3.深拷贝(deep copy)

d = copy.deepcopy(a)

当我们修改a的时候:

a.append('one')
a[1].append('4')
a[0] = 'ten'

a输出: ['ten', [1, 2, 3, '4'], 'one']

b输出: ['ten', [1, 2, 3, '4'], 'one']

c输出: 'zero', [1, 2, 3, '4']]

d输出: ['zero', [1, 2, 3]]

赋值的时候,是直接引用,b与a其实都指向同一个对象,所以当a改变时,b也随机改变; 浅拷贝的时候,a与c独立,但是子对象指向同一对象,a变化时,c列表的子列表[1,2,3]变成了[1,2,3,4]; 深拷贝的时候,完全拷贝a及其子对象,d与a独立,d不随a的变化而变化。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档