最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python字典深淺拷貝與循環(huán)方式方法詳解

 更新時間:2020年02月09日 14:43:41   作者:羅阿紅  
這篇文章主要介紹了Python字典深淺拷貝與循環(huán)方式方法詳解,需要的朋友可以參考下

本節(jié)內(nèi)容

  • 深淺拷貝
  • 循環(huán)方式
  • 字典常用方法總結(jié)

一、深淺拷貝

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

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

賦值(=)

賦值只是創(chuàng)建一個變量,該變量指向原來的內(nèi)存地址

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

 如圖所示:

 淺拷貝(copy)

淺拷貝是指在內(nèi)存地址中,只拷貝出第一層的內(nèi)存的地址,所以拷貝變量和被拷貝變量的內(nèi)存地址是不一樣的(列表、元組和字典中的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

 如圖所示:

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

>>> import copy
>>> name1 = ['a','b',['m','n'],'c']
>>> name2 = copy.copy(name1)
>>> name1[0] = 'h'
>>> name1[2][0] = 'M'
#name1[2][0]的內(nèi)存地址和name2[2][0]內(nèi)存地址是一樣的
>>> 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

淺拷貝的三種表現(xiàn)形式:

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

2.用切片的方式:

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

 3.用列表自帶的方法:

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

深拷貝(deepcopy)

深拷貝是指在內(nèi)存中將所有的數(shù)據(jù)重新創(chuàng)建一份。

注:排除最后一層,即python內(nèi)部對字符串和數(shù)字的優(yōu)化

>>> 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

 如圖所示:

 注:因為深拷貝會拷貝到最后一層的內(nèi)存地址,所以最后一層的內(nèi)存地址是不通

二、循環(huán)方式

方法1、

for key in info:
  print(key,info[key])

 方法2、

for k,v in info.items(): #會先把dict轉(zhuǎn)成list,數(shù)據(jù)量大時莫用
  print(k,v)

 小結(jié):

①方法1的效率比方法2的效率高很多

②方法1是直接通過key取value

③方法2是先把字典轉(zhuǎn)換成一個列表,再去取值

④當(dāng)數(shù)據(jù)量比較大的時候,用第二種方法時,字典轉(zhuǎn)換成列表的這個過程需要花大量的時間老轉(zhuǎn)換,當(dāng)然數(shù)據(jù)量不大,沒有關(guān)系,效率差不多

字典常用方法

更多關(guān)于Python字典深淺拷貝與循環(huán)方式方法請查看下面的相關(guān)鏈接

相關(guān)文章

  • python集合比較(交集,并集,差集)方法詳解

    python集合比較(交集,并集,差集)方法詳解

    python的set,是一個無序不重復(fù)元素集, 基本功能包括關(guān)系測試和消除重復(fù)元素本文講述了python中set集合的比較方法包括交集,并集,差集
    2018-09-09
  • 使用Python的數(shù)據(jù)可視化庫Matplotlib實現(xiàn)折線圖

    使用Python的數(shù)據(jù)可視化庫Matplotlib實現(xiàn)折線圖

    數(shù)據(jù)可視化是數(shù)據(jù)分析和探索中不可或缺的一環(huán),本文將介紹如何使用Python中的數(shù)據(jù)可視化庫Matplotlib,通過示例代碼實現(xiàn)一個簡單的折線圖,感興趣的同學(xué)可以參考閱讀下
    2023-07-07
  • python集合的創(chuàng)建、添加及刪除操作示例

    python集合的創(chuàng)建、添加及刪除操作示例

    這篇文章主要介紹了python集合的創(chuàng)建、添加及刪除操作,結(jié)合實例形式分析了Python集合的概念、功能及針對集合的創(chuàng)建、添加與刪除等相關(guān)操作實現(xiàn)技巧,需要的朋友可以參考下
    2019-10-10
  • 淺談Python中函數(shù)的定義及其調(diào)用方法

    淺談Python中函數(shù)的定義及其調(diào)用方法

    今天小編就為大家分享一篇淺談Python中函數(shù)的定義及其調(diào)用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • PyCharm更換pip源、模塊安裝以及PyCharm依賴包導(dǎo)入導(dǎo)出功能

    PyCharm更換pip源、模塊安裝以及PyCharm依賴包導(dǎo)入導(dǎo)出功能

    這篇文章主要給大家介紹了關(guān)于PyCharm更換pip源、模塊安裝以及PyCharm依賴包導(dǎo)入導(dǎo)出功能的相關(guān)資料,我們在使用pycharm的時候,pycharm中的虛擬環(huán)境依賴包需要導(dǎo)出成一個文件,需要的朋友可以參考下
    2023-11-11
  • Python3+Selenium+Chrome實現(xiàn)自動填寫WPS表單

    Python3+Selenium+Chrome實現(xiàn)自動填寫WPS表單

    本文通過python3、第三方python庫Selenium和谷歌瀏覽器Chrome,完成WPS表單的自動填寫,通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • python PyGame五子棋小游戲

    python PyGame五子棋小游戲

    大家好,本篇文章主要講的是python PyGame五子棋小游戲,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Flask與數(shù)據(jù)庫的交互插件Flask-Sqlalchemy的使用

    Flask與數(shù)據(jù)庫的交互插件Flask-Sqlalchemy的使用

    在構(gòu)建Web應(yīng)用時,與數(shù)據(jù)庫的交互是必不可少的部分,本文主要介紹了Flask與數(shù)據(jù)庫的交互插件Flask-Sqlalchemy的使用,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • python爬蟲請求頭的使用

    python爬蟲請求頭的使用

    這篇文章主要介紹了python爬蟲請求頭的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 淺談python擴展包安裝失敗解決方案

    淺談python擴展包安裝失敗解決方案

    Python包安裝失敗最主要原因是默認(rèn)安裝源為國外服務(wù)器,安裝速度慢,但是在使用python擴展包安裝失敗,本文就來介紹一下,感興趣的可以了解一下
    2023-09-09

最新評論

龙岩市| 多伦县| 天镇县| 冷水江市| 宜兰市| 游戏| 沙湾县| 苗栗县| 专栏| 玛多县| 上虞市| 慈利县| 佳木斯市| 永吉县| 沁水县| 鲁甸县| 澄江县| 岳普湖县| 开江县| 六安市| 延长县| 微山县| 乐陵市| 丰县| 汉中市| 萍乡市| 什邡市| 南通市| 三亚市| 家居| 徐州市| 娄底市| 阿克苏市| 兴国县| 鲁山县| 涿州市| 神农架林区| 含山县| 三台县| 长顺县| 峨边|