copy.copy()
元组和列表调用这个方法效果也不一样。
元组的效果:
a = [1,2,3]
b = [4,5,6]
c = (a,b)
e = copy.copy(c)
可以看到:e和c是指向了同一个地址。原因:元组是不可变类型,拷贝出来没有什么用,所以copy有个功能,可以判断这个东西是可变还是不可变类型,如果是可变类型,当时用copy.copy()对于可变类型的只会深拷贝一层,不可变类型的话,一层都不拷贝(浅拷贝)。
列表的效果:
可以看到:c和e指向了不同的地址,但是c和e里面的内容是指向了相同的地址
copy.deepcopy()
这个是深拷贝,并且是递归的形式拷贝的
元组的效果:
可以看到:它是把所有的内容都进行了了深拷贝
列表的效果:
可以看到:它是把所有的内容都进行了了深拷贝
总结:copy.deepcopy()在元组和列表的嵌套上的效果是一样的,都是进行了深拷贝(递归的)