import copy
1 copy 拷贝
2 引用拷贝 =
3 深拷贝 deepcopy
4 浅拷贝 copy
copy 模块
copy.deepcopy()
1 深拷贝,全部拷贝
2 def deepcopy(x, memo=None, _nil=[])
3 Deep copy operation on arbitrary Python objects.
copy.copy()
1 浅拷贝,只拷贝第一层,其他是引用拷贝
2 def copy(x)
3 Shallow copy operation on arbitrary Python objects.
$Exp:不可变类型
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$ import copy
$ a=(1,2)
$ b=a
$ c=copy.deepcopy(a)
$ d=copy.copy(a)
$ print(id(a)) # 2417465096200
$ print(id(b)) # 2417465096200 引用 相同
$ print(id(c)) # 2417465096200 深 相同
$ print(id(d)) # 2417465096200 浅 相同
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$Exp:可变类型
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$ import copy
$ a=[1,2]
$ b=a
$ c=copy.deepcopy(a)
$ d=copy.copy(a)
$ print(id(a)) # 1701539370248
$ print(id(b)) # 1701539370248 引用 相同
$ print(id(c)) # 1701539323592 深 不同
$ print(id(d)) # 1701539494344 浅 不同
$#########################################################
$ import copy
$ a=[1] # a: [1]
$ b=[a,a] # b: [[1],[1]]
$ c=copy.copy(b) # c: [[1],[1]] 浅拷贝,只考虑第一层
$ a[0]=55
$ print(b) # [[55], [55]]
$ print(c) # [[55], [55]]
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
近期评论