深浅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]]
posted @ 2021-03-29 21:04  此用户名不可用  阅读(50)  评论(0)    收藏  举报