一、python的copy模块
1. a = copy.copy(b)
copy模块的copy是浅拷贝,
①如果 b是不可变类型, 那id(a) ==id(b),直接将b的引用给a。
②如果b是可变类型, id(a) != id(b), a会再内存中重新开辟一块空间,a的引用和b的引用不一致,但是a中元素的地址和b中元素的地址相同。
2. copy.deepcopy()
num_tuple = ([1,2,3],[7,8])
num_tuple2 = copy.copy(num_tuple)
当copy对象是元祖时,情况不同
①元祖元素都为不可变类型
这是copy和deepcopy相同,都是直接将tuple1引用直接给新应用 tuple2
②当元祖元素为可变类型时
浅拷贝:copy 时直接将num_tuple的引用给num_tuple2
深拷贝:deepcopy时,num_tuple2会在内存中重新开辟一块空间保存,里面数据为直接复制数值,相当于创建了一个数值相同的元祖,两个元祖没有关系。