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

Python中五種列表拷貝的方法

 更新時(shí)間:2022年02月08日 16:57:13   作者:趙卓不凡?  
這篇文章主要介紹了Python中五種列表拷貝的方法,在Python中,我們經(jīng)常會(huì)遇到需要拷貝列表的情形,下面針對(duì)常用的列表拷貝方法進(jìn)行介紹和總結(jié),希望可以給大家?guī)?lái)更多感性的認(rèn)識(shí)

1. 賦值操作

最容易想到的就是我們可以使用賦值操作來(lái)直接復(fù)制列表,

代碼如下:

copied_list=original_list

此時(shí),original_listcopyed_list 都將指向同一個(gè)列表對(duì)象。

舉例如下:

original_list=[1,2,3]
#Copying list using assignment operation
copied_list=original_list
print(copied_list)
#Output:[1, 2, 3]
print(original_list)
#Output:[1, 2, 3]
#checking the id of both original and copied list
print(id(original_list))
#Output:
print(id(copied_list))
#Output:26751688

上圖可視化如下:

此時(shí),在 original_list 中所做的修改將反映在copyed_list 中,反之亦然。

樣例代碼如下:

#modifying original_list
original_list.append(99)
#Output:[1, 2, 3,99]
print(copied_list)
#Output:[1, 2, 3,99]
print(id(original_list))
#Output:26751688
print(id(copied_list))
#Output:26751688

可視化結(jié)果如下:

2. 使用copy操作

我們也可以使用 copy() 函數(shù)來(lái)復(fù)制 python 列表,此時(shí)original_listcopyed_list 指向內(nèi)存中不同的列表對(duì)象。

樣例代碼如下:

original_list=[1,2,3]
#Copying list using copy function
copied_list=original_list.copy()
print(copied_list)
#Output:[1, 2, 3]
print(original_list)
#Output:[1, 2, 3]
#checking the id of both original and copied list
print(id(original_list))
#Output:27800264
print(id(copied_list))
#Output:27799880

可視化如下:

由于二者指向內(nèi)存不同,所以此時(shí)在原始列表中所做的修改不會(huì)反映在復(fù)制的列表中,反之亦然。

#modifying original_list
original_list.append(99)
print(original_list)
#Output:[1, 2, 3,99]
print(copied_list)
#Output:[1, 2, 3]
print(id(copied_list))
#Output:27799880
print(id(original_list))
#Output:27800264

可視化如下:

3. 使用list()構(gòu)造函數(shù)

我們也可以使用list() 構(gòu)造函數(shù)來(lái)復(fù)制列表。 original_list copyed_list均指向不同的列表對(duì)象。代碼如下:

copied_list=list(original_list)

樣例代碼如下:

original_list=[1,2,3]
#Copying list using list() constructor
copied_list=list(original_list)
print(copied_list)
#Output:[1, 2, 3]
print(original_list)
#Output:[1, 2, 3]
#checking the id of both original and copied list
print(id(original_list))
#Output:27800264
print(id(copied_list))
#Output:27799880

此時(shí),修改 original_list 中的元素不會(huì)反映在copyed_list 中,反之亦然。

#modifying original_list
original_list.append(99)
print(original_list)
#Output:[1, 2, 3,99]
print(copied_list)
#Output:[1, 2, 3]

4. 使用索引

接著,我們可以使用索引方式來(lái)拷貝列表。

s[i:j:k] — slice of s from i to j with step k

此時(shí),i,j,k解釋如下:

i → start index, j → end index, k → step

如果我們使用original_list[:],它將從頭到尾對(duì) original_list 進(jìn)行切片,并返回列表的副本。

如下所示:

copied_list=original_list[:]

接著我們來(lái)看個(gè)例子:

original_list=[1,2,3]
#Copying list using INDEXING
copied_list=original_list[:]
print(copied_list)
#Output:[1, 2, 3]
print(original_list)
#Output:[1, 2, 3]
#checking the id of both original and copied list
print(id(original_list))
#Output:27800264
print(id(copied_list))
#Output:27799880

此時(shí),修改orignial_list 不會(huì)反映在copyed_list 中,反之亦然。

#modifying original_list
original_list.append(99)
print(original_list)
#Output:[1, 2, 3,99]
print(copied_list)
#Output:[1, 2, 3]
print(id(copied_list))
#Output:27799880
print(id(original_list))
#Output:27800264

5. 列表生成式

最后,我們可以使用列表生成式來(lái)復(fù)制列表中的元素,

代碼如下:

copied_list=[i for i in original_list]

我們來(lái)舉個(gè)栗子,代碼如下:

original_list=[1,2,3]
#Copying list using list comprehension
copied_list=[ i for i in original_list]
print(copied_list)
#Output:[1, 2, 3]
print(original_list)
#Output:[1, 2, 3]
#checking the id of both original and copied list
print(id(original_list))
#Output:27800264
print(id(copied_list))
#Output:27799880

此時(shí),修改original_list 不會(huì)反映在copyed_list 中,反之亦然。

#modifying original_list
original_list.append(99)
print(original_list)
#Output:[1, 2, 3,99]
print(copied_list)
#Output:[1, 2, 3]
print(id(copied_list))
#Output:27799880
print(id(original_list))
#Output:27800264

6 總結(jié)

在本文中,主要介紹了在 python 中復(fù)制列表的不同方法。

  • 使用賦值操作,此時(shí)兩個(gè)列表將指向同一個(gè)列表對(duì)象
  • 使用索引,列表構(gòu)造函數(shù),列表生成式,copy()等方式時(shí),兩個(gè)列表將指向不同的列表對(duì)象。

到此這篇關(guān)于Python中五種列表拷貝的方法的文章就介紹到這了,更多相關(guān)Python列表拷貝方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python求pi的方法

    python求pi的方法

    這篇文章主要介紹了python求pi的方法,是一篇翻譯文章,備有詳細(xì)的注釋供大家參考,需要的朋友可以參考下
    2014-10-10
  • Python調(diào)用系統(tǒng)底層API播放wav文件的方法

    Python調(diào)用系統(tǒng)底層API播放wav文件的方法

    這篇文章主要介紹了Python調(diào)用系統(tǒng)底層API播放wav文件的方法,涉及Python使用pywin32調(diào)用系統(tǒng)底層API讀取與播放wav文件的相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • python?中的?super詳解

    python?中的?super詳解

    這篇文章主要介紹了python?中的?super,提到 super,最直接的想法就是它代表了父類(lèi),替父類(lèi)執(zhí)行某些方法,但是理解也僅止步于此,下面對(duì) super 做進(jìn)一步理解,需要的朋友可以參考下
    2022-08-08
  • python通過(guò)cython加密代碼

    python通過(guò)cython加密代碼

    這篇文章主要介紹了python通過(guò)cython實(shí)現(xiàn)加密的示例代碼,幫助大家加密自己的python代碼,提高安全性,感興趣的朋友可以參考下
    2020-12-12
  • 基于python元祖與字典與集合的粗淺認(rèn)識(shí)

    基于python元祖與字典與集合的粗淺認(rèn)識(shí)

    下面小編就為大家?guī)?lái)一篇基于python元祖與字典與集合的粗淺認(rèn)識(shí)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • django框架中ajax的使用及避開(kāi)CSRF 驗(yàn)證的方式詳解

    django框架中ajax的使用及避開(kāi)CSRF 驗(yàn)證的方式詳解

    這篇文章主要介紹了django框架中ajax的使用及避開(kāi)CSRF 驗(yàn)證的方式,結(jié)合實(shí)例形式分析了Django框架ajax后臺(tái)交互與排除驗(yàn)證csrf相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • Python實(shí)現(xiàn)PS濾鏡功能之波浪特效示例

    Python實(shí)現(xiàn)PS濾鏡功能之波浪特效示例

    這篇文章主要介紹了Python實(shí)現(xiàn)PS濾鏡功能之波浪特效,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)PS濾鏡波浪特效的原理與相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • 使用 Python 解析配置文件格式

    使用 Python 解析配置文件格式

    選擇配置格式是一種微妙的權(quán)衡。但是,一旦你做出決定,Python 就可以使用少量代碼來(lái)解析大多數(shù)流行的格式。今天通過(guò)本文給大家分享 Python 解析配置文件格式的問(wèn)題,感興趣的朋友一起看看吧
    2021-07-07
  • keras 權(quán)重保存和權(quán)重載入方式

    keras 權(quán)重保存和權(quán)重載入方式

    這篇文章主要介紹了keras 權(quán)重保存和權(quán)重載入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • LyScript實(shí)現(xiàn)對(duì)內(nèi)存堆棧掃描的方法詳解

    LyScript實(shí)現(xiàn)對(duì)內(nèi)存堆棧掃描的方法詳解

    LyScript插件中提供了三種基本的堆棧操作方法,其中push_stack用于入棧,pop_stack用于出棧,peek_stac可用于檢查指定堆棧位置處的內(nèi)存參數(shù)。所以本文將利用這一特性實(shí)現(xiàn)對(duì)內(nèi)存堆棧掃描,感興趣的可以了解一下
    2022-08-08

最新評(píng)論