在python中的資料型別包括:bool,int,float,str,set,list,tuple,dict等。
** 簡單資料型別:**bool,int,float,str
**複雜資料型別:**list,tuple,set,dict
對於簡單的資料型別變數在記憶體中儲存都是儲存「資料本身」,而對於複雜的資料型別來說,在記憶體中儲存的是資料的記憶體位址。
第一層建立的是新的記憶體位址,但從第二層開始,指向的都是同乙個記憶體位址,所以,對於第二層以及更深層的層數來說,保持一致性。
匯入模組,
import copy
copy.deepcopy()
對於深拷貝來說,巢狀的可變資料型別重新開闢一塊記憶體空間。
#author:298
_date_ =
"date 上午9:28"
import copy
name_list =
["tom"
,"jerry",[
"悟空"
,"八戒"]]
name_list2 = copy.deepcopy(name_list)
#檢視拷貝內容
# print(name_list)#['tom', 'jerry', ['悟空', '八戒']]
# print(name_list2)#['tom', 'jerry', ['悟空', '八戒']]
#修改第一層內容
name_list2[0]
="zs"
(name_list)
#['tom', 'jerry', ['悟空', '八戒']]
(name_list2)
#['zs', 'jerry', ['悟空', '八戒']]
#修改第二層
name_list2[2]
[0]=
"一圈超人"
(name_list)
#['tom', 'jerry', ['悟空', '八戒']]
(name_list2)
#['zs', 'jerry', ['一圈超人', '八戒']]
python之深淺拷貝
lis 1 3,world 1,hello lis 2 lis 1.copy print 列表1元素的id lis 1,id lis 1 0 id lis 1 0 0 id lis 1 0 1 id lis 1 1 id lis 1 2 print 列表2元素的id lis 2,id lis 2 0...
python之深淺拷貝
基礎沒打牢,python的深淺copy老是混淆,模稜兩可的。一 物件賦值 a 1,2,3 b a 物件賦值 print id a print id b 執行上面的 可以發現id a id b 為什麼呢?其實是在記憶體中有乙個列表 1,2,3 a和b就是兩個標籤,都指向列表 1,2,3 如下圖 當修改...
python之深淺拷貝
對於 數字 和 字串 而言,賦值 淺拷貝和深拷貝無意義,因為其永遠指向同乙個記憶體位址。importcopy 數字 字串 n1 123 n1 age 10 print id n1 賦值 n2 n1 print id n2 淺拷貝 n2 copy.copy n1 print id n2 深拷貝 n3 ...