国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python字典深淺拷貝與循環方式方法詳解

2020-02-15 21:18:49
字體:
來源:轉載
供稿:網友

本節內容

深淺拷貝 循環方式 字典常用方法總結

一、深淺拷貝

列表、元組、字典(以及其他)

對于列表、元組和字典而言,進行賦值(=)、淺拷貝(copy)、深拷貝(deepcopy)而言,其內存地址是變化不通的。

賦值(=)

賦值只是創建一個變量,該變量指向原來的內存地址

>>> name1 = ['a','b',['m','n'],'c']>>> name2 = name1#輸出結果,兩個內存地址是一樣的>>> print(id(name1),',',id(name2))50077256 , 50077256

 如圖所示:

 淺拷貝(copy)

淺拷貝是指在內存地址中,只拷貝出第一層的內存的地址,所以拷貝變量和被拷貝變量的內存地址是不一樣的(列表、元組和字典中的copy()方法都是淺拷貝)

>>> import copy>>> name1 = ['a','b',['m','n'],'c']#淺copy>>> name2 = copy.copy(name1)>>> print(name1,',',id(name1))['a', 'b', ['m', 'n'], 'c'] , 50228296>>> print(name2,',',id(name2))['a', 'b', ['m', 'n'], 'c'] , 50920008#修改列表中的元素>>> name1[0] = 'h'>>> name1[2][0] = 'M'>>> print(name1,',',id(name1))['h', 'b', ['M', 'n'], 'c'] , 50228296>>> print(name2,',',id(name2))['a', 'b', ['M', 'n'], 'c'] , 50920008

 如圖所示:

注:因為淺拷貝只拷貝了第一層,所以拷貝的變量和被拷貝的變量的第二層的列表的內存地址是一樣的。

>>> import copy>>> name1 = ['a','b',['m','n'],'c']>>> name2 = copy.copy(name1)>>> name1[0] = 'h'>>> name1[2][0] = 'M'#name1[2][0]的內存地址和name2[2][0]內存地址是一樣的>>> print(name1,id(name1),id(name1[2][0]))['h', 'b', ['M', 'n'], 'c'] 50209800 13820904>>> print(name2,id(name2),id(name2[2][0]))['a', 'b', ['M', 'n'], 'c'] 50891144 13820904

淺拷貝的三種表現形式:

1.用copy模塊中的copy方法(跟上面的一樣)

2.用切片的方式:

>>> name1 = ['a','b',['m','n'],'c']>>> name2 = name1[:]

 3.用列表自帶的方法:

>>> name1 = ['a','b',['m','n'],'c']>>> name2 = name1.copy()

深拷貝(deepcopy)

深拷貝是指在內存中將所有的數據重新創建一份。

注:排除最后一層,即python內部對字符串和數字的優化

>>> import copy>>> name1 = ['a','b',['m','n'],'c']#深拷貝>>> name2 = copy.deepcopy(name1)>>> print(name1,',',id(name1))['a', 'b', ['m', 'n'], 'c'] , 50142472>>> print(name2,',',id(name2))['a', 'b', ['m', 'n'], 'c'] , 50942280>>> name1[0] = 'h'>>> name1[2][0] = 'M'>>> print(name1,id(name1),id(name1[2][0]))['h', 'b', ['M', 'n'], 'c'] 50142472 10937320>>> print(name2,id(name2),id(name2[2][0]))['a', 'b', ['m', 'n'], 'c'] 50942280 4896280            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 共和县| 双柏县| 育儿| 司法| 洞口县| 卓尼县| 文化| 达孜县| 古丈县| 万全县| 高州市| 石家庄市| 屯昌县| 府谷县| 商都县| 酉阳| 商丘市| 会理县| 基隆市| 洪雅县| 石棉县| 长沙市| 龙里县| 宁国市| 将乐县| 河南省| 临泽县| 靖江市| 二手房| 阜阳市| 宜阳县| 崇州市| 称多县| 苏尼特右旗| 容城县| 垣曲县| 宕昌县| 汤阴县| 教育| 牙克石市| 酒泉市|