python 基礎之淺拷貝與深拷貝
阿新 • • 發佈:2019-05-11
png 分享 字符串 span () nbsp img 有一個 bsp 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)
淺拷貝與深拷貝
#1.普通賦值:
例1:
a = 15
b = a
a = 16
print(b)
#例2:
lst1 = [1,2,3]
lst2 = lst1
lst1.append(4)
print(lst2)
#這個情況是lst1和lst2地址相同,元素相同
#2.淺拷貝
#只拷貝以及所有元素
#例:
#法一:直接.copy()拷貝
lst1 = [1,2,3]
#lst2 = lst1
lst2 = lst1.copy()
print(lst2)
lst1.append(4)
print(lst2)
print(lst1)
#法二:使用模塊進行淺拷貝
import copy
#copy 模塊下面有一個同名的copy方法
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]}}
dictvar["b"]["d"].extend("ab")
print(dict2)
lstvar = [1,2,3,[4,5]]
lst2 = copy.copy(lstvar)
print(lst2)
lstvar.append(66)
print(lst2)
#在淺拷貝中把字符串這樣列表的當著一級容器數據
lstvar = [1,2,3,"45"]
lstvar2 = copy.copy(lstvar)
# lstvar[-1] = 1234 #
# print(lstvar)
# print(lstvar2)
#賦值與淺拷貝與深拷貝內存關系
淺拷貝只有一級數據時獨立的,二級的數據時相同的地址的
python 基礎之淺拷貝與深拷貝