直接赋值
对象的引用(别名),被引用的变量修改会导致引用它的变量也进行修改(实际上是同一个对象)
# 直接赋值
a = {1:[1,2]}
b = a
a,b
a[1].append(3)
a,b
({1: [1, 2, 3]}, {1: [1, 2, 3]})
浅拷贝
拷贝父对象,不会拷贝子对象
# 浅拷贝
import copy
a = [[1,2,3],['a','b','c']]
b = copy.copy(a)
a,b
a.append('qwe')
a,b
([[1, 2, 3], ['a', 'b', 'c'], 'qwe'], [[1, 2, 3], ['a', 'b', 'c']])
深拷贝
创建一个与被拷贝的对象完全相同的对象
# 深拷贝
import copy
a = {1:[1,2,3,4]}
c = copy.deepcopy(a)
a,c
a[1].append(5)
a,c
({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})