直接赋值、浅拷贝与深拷贝

转自:https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html

直接赋值

b=a直接赋值,a和b都指向同一个对象,b是a的引用:
直接赋值

浅拷贝

b=a.copy(),a和b是独立的对象互不影响,但他们的子对象还是指向同一个对象,互为引用,会相互影响:
图片说明

深拷贝

import copy
b=copy.deepcopy(a)
a和b是独立的对象,他们的子对象也是独立的对象,从头到尾都互不影响:
图片说明

代码实例

import copy
a = [1, 2, 3, 4, ['a', 'b']] #原始对象

b = a                       #赋值,传对象的引用
c = copy.copy(a)            #对象拷贝,浅拷贝
d = copy.deepcopy(a)        #对象拷贝,深拷贝

a.append(5)                 #修改对象a
a[4].append('c')            #修改对象a中的['a', 'b']数组对象

print( 'a = ', a )
print( 'b = ', b )
print( 'c = ', c )
print( 'd = ', d )
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 12:05
俺不中了,BOSS遇到了一个hr,我觉得我咨询的问题都很正常吧,然后直接就被拒绝了???
恶龙战士:你问的太多了,要不就整理成一段话直接问他,一个一个问不太好
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务