欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2015年04月14日 09:55:47   投稿:junjie  
這篇文章主要介紹了Python中使用copy模塊實現(xiàn)列表(list)拷貝,本文講解了簡單列表的復(fù)制和復(fù)雜列表復(fù)制的解決方法,需要的朋友可以參考下

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

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

復(fù)制代碼 代碼如下:

a=[1,2]
b=a

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

解決的方法為:

復(fù)制代碼 代碼如下:

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

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

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

復(fù)制代碼 代碼如下:

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

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

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

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

相關(guān)文章

  • python使用sorted函數(shù)對列表進行排序的方法

    python使用sorted函數(shù)對列表進行排序的方法

    這篇文章主要介紹了python使用sorted函數(shù)對列表進行排序的方法,涉及Python使用sorted函數(shù)的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • python 字符串的駐留機制及優(yōu)缺點

    python 字符串的駐留機制及優(yōu)缺點

    字符串駐留是一種僅保存一份相同且不可變字符串的方法。這篇文章主要介紹了python 字符串的駐留機制,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 選擇Python寫網(wǎng)絡(luò)爬蟲的優(yōu)勢和理由

    選擇Python寫網(wǎng)絡(luò)爬蟲的優(yōu)勢和理由

    在本篇文章里小編給各位整理了一篇關(guān)于選擇Python寫網(wǎng)絡(luò)爬蟲的優(yōu)勢和理由以及相關(guān)代碼實例,有興趣的朋友們閱讀下吧。
    2019-07-07
  • Pytest單元測試框架如何實現(xiàn)參數(shù)化

    Pytest單元測試框架如何實現(xiàn)參數(shù)化

    這篇文章主要介紹了Pytest單元測試框架如何實現(xiàn)參數(shù)化,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 使用sklearn之LabelEncoder將Label標準化的方法

    使用sklearn之LabelEncoder將Label標準化的方法

    今天小編就為大家分享一篇使用sklearn之LabelEncoder將Label標準化的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python中Threading用法詳解

    Python中Threading用法詳解

    本篇文章給大家介紹了Python中Threading的詳細用法,需要的朋友跟著小編一起學(xué)習(xí)下吧。
    2017-12-12
  • Python函數(shù)的參數(shù)類型和使用技巧詳解

    Python函數(shù)的參數(shù)類型和使用技巧詳解

    這篇文章主要介紹了Python函數(shù)的參數(shù)類型和使用技巧詳解,函數(shù)指通過專門的代碼組織,用來實現(xiàn)特定功能的代碼段,具有相對的獨立性,可以被其他代碼重復(fù)調(diào)用,需要的朋友可以參考下
    2023-08-08
  • Python lambda和Python def區(qū)別分析

    Python lambda和Python def區(qū)別分析

    Python支持一種有趣的語法,它允許你快速定義單行的最小函數(shù)。這些叫做lambda的函數(shù),是從Lisp借用來的,可以用在任何需要函數(shù)的地方
    2014-11-11
  • 使用turtle繪制五角星、分形樹

    使用turtle繪制五角星、分形樹

    這篇文章主要為大家詳細介紹了使用turtle繪制五角星、分形樹,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python 實現(xiàn)打印單詞的菱形字符圖案

    Python 實現(xiàn)打印單詞的菱形字符圖案

    這篇文章主要介紹了Python 實現(xiàn)打印單詞的菱形字符圖案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評論