转自: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 )