亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python中使用copy模塊實現列表(list)拷貝

系統 1865 0

引用是指保存的值為對象的地址。在 Python 語言中,一個變量保存的值除了基本類型保存的是值外,其它都是引用,因此對于它們的使用就需要小心一些。下面舉個例子:

問題描述:已知一個列表,求生成一個新的列表,列表元素是原列表的復制

復制代碼 代碼如下:

a=[1,2]
b=a

這種做法其實并未真正生成一個新的列表,b指向的仍然是a所指向的對象。這樣,如果對a或b的元素進行修改,a,b的值同時發生變化。

解決的方法為:

復制代碼 代碼如下:

a=[1,2]
b=a[:]

這樣修改a對b沒有影響。修改b對a沒有影響。

但 這種方法只適用于簡單列表,也就是列表中的元素都是基本類型,如果列表元素還存在列表的話,這種方法就不適用了。原因就是,象a[:]這種處理,只是將列 表元素的值生成一個新的列表,如果列表元素也是一個列表,如:a=[1,[2]],那么這種復制對于元素[2]的處理只是復制[2]的引用,而并未生成 [2]的一個新的列表復制。為了證明這一點,測試步驟如下:

復制代碼 代碼如下:

>>> a=[1,[2]]
>>> b=a[:]
>>> b
[1, [2]]
>>> a[1].append(3)
>>> a
[1, [2, 3]]
>>> b
[1, [2, 3]]

可見,對a的修改影響到了b。如果解決這一問題,可以使用copy模塊中的deepcopy函數。修改測試如下:
復制代碼 代碼如下:

>>> import copy
>>> a=[1,[2]]
>>> b=copy.deepcopy(a)
>>> b
[1, [2]]
>>> a[1].append(3)
>>> a
[1, [2, 3]]
>>> b
[1, [2]]

有時候知道這一點是非常重要的,因為可能你的確需要一個新的列表,并且對這個新的列表進行操作,同時不想影響原來的列表。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 五月婷婷丁香在线视频 | 51啪影院| 免费的成人a视频在线观看 免费的黄色网 | 日本在线观看a | 久久er这里只有精品 | 欧美成人免费毛片 | 99国产福利视频在线观看 | 国产亚洲欧洲国产综合一区 | 久久久久夜色精品波多野结衣 | 欧洲精品视频在线观看 | 午夜在线成人 | 四虎最新紧急更新地址 | 天天操天天弄 | 久久精品.com| 亚洲香蕉久久一区二区 | 亚洲一区视频在线播放 | 九九精品视频在线免费观看 | 久草免费在线 | 99热视热频这里只有精品 | 天天做天天爱夜夜爽女人爽宅 | 毛片网站免费观看 | 黄色毛片免费观看 | www精品视频 | 亚洲欧美日韩国产 | 中文在线1区二区六区 | 自拍偷拍三级 | 亚洲成人免费看 | 国产精品亚洲一区在线播放 | 在线免费观看亚洲 | 久久这里只有精品66 | 在线看福利视频120秒 | 女人18毛片a级毛片免费视频 | 日韩啊啊啊| 成人午夜久久 | 99热热久久 | 欧美人与鲁交大毛片免费 | 国产精品99久久免费观看 | 亚洲精品一区二区三区美女 | 一级毛片美国一级j毛片不卡 | 尹人香蕉久久99天天拍欧美p7 | 亚洲精品久久久久影 |