只要涉及拷貝,就會涉及建立新對象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.深拷貝,建立一個一摸同樣徹底新的對象 不可變對象,仍是原來的,可變對象建立新的數據類型