Python浅拷贝和深拷贝

问题:请解释以下Python中的浅拷贝和深拷贝


浅拷贝和深拷贝的区别主要在于一个拷贝的少,一个拷贝的多

深浅拷贝一般都是说的可变数据类型:set、list、dict,不可变数据类型在进行深浅拷贝时无意义,其内部不会去拷贝,永远都是同一块内存地址

import copy

v1 = "Andy437"
v2 = copy.copy(v1)  # 浅拷贝
v3 = copy.deepcopy(v2)  # 深拷贝

print(v1)  # Andy437
print(v2)  # Andy437
print(v3)  # Andy437

print(id(v1))  # 2560744292904
print(id(v2))  # 2560744292904
print(id(v3))  # 2560744292904

浅拷贝,只拷贝第一层可变数据类型

深拷贝,拷贝所有层的可变数据类型 + 元组中如果有可变数据类型,也会被拷贝

特殊的:元组,不可变数据类型

如果遇到浅拷贝,永远不会拷贝

如果遇到深拷贝,当元组的元素中都是不可变数据类型时,永远不会拷贝;当元组中有可变数据类型,会被拷贝 

1.浅拷贝

浅拷贝,针对可变数据类型,只拷贝第一层,内部不可变数据类型 & 可变数据类型都不会被拷贝

 
 

你可能感兴趣的:(面试题,Python,python,后端,开发语言)