一,python中浅拷贝与深拷贝
1,区别
当深浅拷贝里面只有值数据类型的话,这时候深拷贝与浅拷贝是相同 的。当做一个拷贝的话(无论是深浅),因为只有值数据类型。它的拷贝是深拷贝。
例子:
from copy import deepcopy
a = [1,'str']
b = a.copy()
a.append(2)
print(b)
# 结果
# [1, 'str']
可见深浅拷贝的话只是对里面含有引用数据类型。
二:深拷贝
深拷贝的话就是对里面含有引用数据类型的话来进行的,对其进行深拷贝的话,在原来的数据中更改的话,不影响深拷贝之后的数据
例子
from copy import deepcopy
a = [1]
b = [a, 'test']
c = b.copy()
# 浅拷贝
a = a.append('追加a的值')
print(c)
# 结果: [[1, '追加a的值'], 'test']
#可见浅拷贝里面有引用类型的话,当原引用类型变得话,浅拷贝的数据也变
from copy import deepcopy
a = [1]
b = [a, 'test']
c =deepcopy(b)
# 深拷贝
a = a.append('追加a的值')
print(c)
# 结果 [[1], 'test']
# 可见原引用类型改的话,不影响深拷贝的数据
注意:切片
切片操作之后如果结果里面没有引用类型的数据那么就是深拷贝
但是如果结果里含有引用类型的话就是浅拷贝