浅谈Python中的拷贝
拷贝:导入模块:import copy
拷贝分为浅拷贝和深拷贝
浅拷贝:对于不可变类型,不拷贝(内存地址不变)
对于可变类型,只拷贝第一层 (内存地址改变)
v = copy.copy(v1)
深拷贝:对于不可变类型,不拷贝
对于可变类型,不管第几层都拷贝
v = copy.deepcopy(v1)
特例:元组
元组:元组中无可变类型,不拷贝
元组中有可变类型,找到可变类型或者含有可变类型的元组,均拷贝
在函数中:
def func(arg):
v1 = arg.copy() # 浅拷贝
print(v1)
func([11,22,33,44])
由于列表有.copy()方法,故可以用
import copy
def func(arg):
v1 = copy.copy(arg)
print(v1)
func("saks")
由于字符串没有.copy()方法,故需导入模块,使用copy.copy(参数)