python中赋值是引用传递——>例子中的 c
复制要使用copy
浅复制(浅拷贝)是复制对象本身,并不对对象内部的子对象进行复制。——>例子中的b
深复制(深拷贝)将对象的本身以及子对象全部拷贝——>例子中的d
#初始对象
a = [1,2,3,4,5,6,[0,0,0,0]]
#b 进行浅赋值
b = copy.copy(a)
#c 直接引用a
c = a
#d进行深度复制
d = copy.deepcopy(a)
"""
a 中添加新的元素
受影响的有c
"""
a.append(7)
"""
a的子对象中添加新的元素
受影响的有 b ,c
"""
a[6].append(1)
print(a)
print(b)
print(c)
print(d)
"""
[1, 2, 3, 4, 5, 6, [0, 0, 0, 0, 1], 7]
[1, 2, 3, 4, 5, 6, [0, 0, 0, 0, 1]]
[1, 2, 3, 4, 5, 6, [0, 0, 0, 0, 1], 7]
[1, 2, 3, 4, 5, 6, [0, 0, 0, 0]]
"""