Python細節(一)深淺拷貝

深淺拷貝

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

相關文章
相關標籤/搜索