- 浅拷贝 shadow copy
仅仅只拷贝对象自身,内部元素引用的其他对象只拷贝一个引用。 - 深拷贝 deep copy
外围和内部元素都拷贝了对象本身。而不是引用。因此深拷贝产生的副本可以随意修改,而不用担心会影响原始值。
c = [[1,2,3],'a',4]
d = c.copy()
print(d) # 此时d与c输出结果相同
d[1] = 'b'
print(d) # 此时只更改了d中‘a’ 为‘b’;没有影响到c的值
d[0][1] = 'h'
print(c)
print(d) #此时c,d都被更改!
import copy
a=[1,2,3]
b=[a,a]
c=copy.deepcopy(b)
id(b[0])==id(c[0]) # False
id(b[0])==id(b[1]) # True
c[0].append('p')
print(c)
print(b) #发现c变了,而b没变