只要涉及拷贝,就会涉及建立新对象python
浅拷贝,会建立一个新的容器,列表中的元素和原列表的元素用的是同一个内存空间code
第一种方法:从头切到尾,完整的复制一份对象
lst = [1,2,3,4] lst1 = lst[:] #从头切到尾,从新完整的复制了一份 print(lst,lst1)
第二种方法:.copy内存
lst1 = lst.copy() #建立对象的速度,会很快
深拷贝,拷贝的是表面,和深层的东西class
不可变的数据类型和原列表指向的是同一个内存空间,可变数据类型会建立一个新的空间import
import copy lst = [1,2,[3,4],5] lst2 = copy.deepcopy(lst) #copy.deepcopy 深拷贝 print(id(lst1[1]),id(lst[1]) #确定不同d's
1.赋值没有建立新对象,多个变量共享一个内容容器
2.浅拷贝,会建立新对象,新对象里面的内容不会被拷贝变量
3.深拷贝,建立一个一摸同样彻底新的对象 不可变对象,仍是原来的,可变对象建立新的数据类型