python 基礎之淺拷貝與深拷貝

淺拷貝與深拷貝

1.普通賦值

1:app

a = 15
b = a
a = 16
print(b)
#2:
lst1 = [1,2,3]
lst2 = lst1
lst1.append(4)
print(lst2)
#這個狀況是lst1lst2地址相同,元素相同spa

2.淺拷貝

#只拷貝以及全部元素
#:blog

#法一:直接.copy()拷貝內存

lst1 = [1,2,3]
#lst2 = lst1
lst2 = lst1.copy()
print(lst2)
lst1.append(4)
print(lst2)
print(lst1)

#法二:使用模塊進行淺拷貝
import copy
#copy 模塊下面有一個同名的copy方法
lst1 = [1,2,3]
lst2 = copy.copy(lst1)
lst1.append(5)
print(lst2)字符串

3.深拷貝

將全部級別的元素通通獨立拷貝一份
"每一級的全部元素通通拷貝一份,不沿用之前的數據"
#import引入copy複製模塊 deepcopy深拷貝 copy淺拷貝
import copy #copy deepcopy()
lstvar = [1,2,3,[4,5,6]]
lstvar2 = copy.deepcopy(lstvar)
lstvar[-1].append(7)
print(lstvar2)
print(lstvar)
dictvar = {'a':[1,2],"b":{"c":123,"d":[7,8,9]}}
dict2 = copy.deepcopy(dictvar)
dictvar["b"]["d"].extend("ab")
print(dict2)

lstvar = [1,2,3,[4,5]]
lst2 = copy.copy(lstvar)
print(lst2)
lstvar.append(66)
print(lst2)class

#在淺拷貝中把字符串這樣列表的當着一級容器數據
lstvar = [1,2,3,"45"]  
lstvar2 = copy.copy(lstvar)
# lstvar[-1] = 1234   #
# print(lstvar)
# print(lstvar2)import

 

#賦值與淺拷貝與深拷貝內存關係容器

 

 

 

 

淺拷貝只有一級數據時獨立的,二級的數據時相同的地址的方法

相關文章
相關標籤/搜索