深浅copy - 深浅拷贝
深浅copy
1、默认情况下都是浅copy
浅copy,拷贝了对象中的所有id地址,不考虑类型是否可变和不可变,其中一个更改可能会影响另一个
li = [1,2,3,[1,2]]
l2 = li.copy()
li[3][0]= 9
print(li)
# [1, 2, 3, [9, 2]]
print(l2)
# [1, 2, 3, [9, 2]]
li[0] = 8
print(li)
# [8, 2, 3, [9, 2]]
print(l2)
# [1, 2, 3, [9, 2]]
2、深copy
深copy,拷贝对象中的所有id地址,如果拷贝类型中存在可变类型,会生成其他id,更改任意一个对象,不会影响另外一个
from copy import deepcopy # 导入函数
li = [1,2,3,[4,5]]
l = deepcopy(li)
li[3][0],li[3][1] = 8,9
print(li) # [1, 2, 3, [8, 9]]
print(l) # [1, 2, 3, [4, 5]]

浙公网安备 33010602011771号