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

转自: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 )
全部评论

相关推荐

10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务