解決Python使用列表副本的問(wèn)題
要使用一個(gè)列表的副本,要用切片進(jìn)行列表復(fù)制,這樣會(huì)形成兩個(gè)獨(dú)立的列表。
切記不要將列表賦值給一個(gè)列表,因?yàn)檫@樣并不能得到兩個(gè)列表。
1、使用賦值語(yǔ)法創(chuàng)建列表副本的問(wèn)題
下邊就將列表賦值,驗(yàn)證是否形成獨(dú)立的列表:
squares = list(range(1, 11)) print('squares原始值為:', end='') print(squares) # 使用列表賦值 numbers_squares = squares print('numbers_squares所有元素為:', end='') print(numbers_squares) # 為squares列表添加數(shù)字100 squares.append(100) print('添加數(shù)字后的squares值:', end='') print(squares) # 為squares列表添加數(shù)字200 numbers_squares.append(200) print('添加數(shù)字后的number_squares值:', end='') print(numbers_squares)
輸出為:
squares原始值為:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] numbers_squares所有元素為:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 添加數(shù)字后的squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100] 添加數(shù)字后的number_squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 200]
可以看到,number_squares列表值中,也有數(shù)字100,說(shuō)明賦值并沒(méi)有形成兩個(gè)獨(dú)立的列表。賦值只是讓Python新變量number_squares關(guān)聯(lián)到包含在squares中的列表,所以這兩個(gè)列表指向同一個(gè)列表。
2、列表副本正確方法:使用切片復(fù)制列表副本
下邊的列子,創(chuàng)建一個(gè)1-10的數(shù)字列表,用切片進(jìn)行列表復(fù)制形成兩個(gè)獨(dú)立的列表
squares = list(range(1, 11)) print('squares原始值為:', end=' ') print(squares) # 使用切片復(fù)制squares列表 numbers_squares = squares[:] print('numbers_squares所有元素為:', end=' ') print(numbers_squares)
輸出為:
squares原始值為: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] numbers_squares所有元素為: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
為了驗(yàn)證確實(shí)形成了兩個(gè)獨(dú)立的列表,在每個(gè)列表上加數(shù)字,核實(shí)每個(gè)列表都記錄了加的數(shù)字
squares = list(range(1, 11)) print('squares原始值為:', end='') print(squares) # 使用切片復(fù)制squares列表 numbers_squares = squares[:] print('numbers_squares所有元素為:', end='') print(numbers_squares) # 為squares列表添加數(shù)字100 squares.append(100) print('添加數(shù)字后的squares值:', end='') print(squares) # 為squares列表添加數(shù)字200 numbers_squares.append(200) print('添加數(shù)字后的number_squares值:', end='') print(numbers_squares)
輸出為:
squares原始值為:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] numbers_squares所有元素為:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 添加數(shù)字后的squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100] 添加數(shù)字后的number_squares值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 200]
可以看到,確實(shí)100和200分別加入到相應(yīng)列表中。
以上這篇解決Python使用列表副本的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python動(dòng)態(tài)規(guī)劃算法實(shí)例詳解
在本篇文章里小編給大家整理了關(guān)于python動(dòng)態(tài)規(guī)劃算法實(shí)例內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。2020-11-11Python生成ubuntu apt鏡像地址實(shí)現(xiàn)
本文主要介紹了Python生成ubuntu apt鏡像地址實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05使用python解析xml成對(duì)應(yīng)的html示例分享
這篇文章主要介紹了使用python解析xml成對(duì)應(yīng)的html示例,需要的朋友可以參考下2014-04-04Python開(kāi)發(fā)的十個(gè)小貼士和技巧及長(zhǎng)常犯錯(cuò)誤
這篇文章主要介紹了Python開(kāi)發(fā)的十個(gè)小貼士和技巧,其中一些是初學(xué)這門(mén)語(yǔ)言常常會(huì)犯的錯(cuò)誤,小編給大家一一列舉出來(lái)了,需要的朋友可以參考下2018-09-09python利用Appium實(shí)現(xiàn)自動(dòng)控制移動(dòng)設(shè)備并提取數(shù)據(jù)功能
這篇文章主要介紹了python利用Appium自動(dòng)控制移動(dòng)設(shè)備并提取數(shù)據(jù),本文以控制抖音app滑動(dòng)并獲取抖音短視頻發(fā)布者為例,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09Python將Excel表格按某列拆分為多個(gè)sheet實(shí)現(xiàn)過(guò)程
這篇文章主要為大家介紹了Python實(shí)現(xiàn)將Excel表格按某列拆分為多個(gè)sheet,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05Python設(shè)計(jì)模式之觀察者模式簡(jiǎn)單示例
這篇文章主要介紹了Python設(shè)計(jì)模式之觀察者模式,簡(jiǎn)單描述了觀察者模式的概念、原理,并結(jié)合實(shí)例形式分析了Python觀察者模式的相關(guān)定義與使用技巧,需要的朋友可以參考下2018-01-01Python中的pandas庫(kù)簡(jiǎn)介及其使用教程
pandas是用于數(shù)據(jù)挖掘的Python庫(kù),Pandas中常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)有Series和DateFrame兩種方式,今天通過(guò)本文給大家講解Python中的pandas庫(kù)簡(jiǎn)介及其使用,感興趣你跟隨小編一起學(xué)習(xí)吧2022-11-11基于Python實(shí)現(xiàn)溫度轉(zhuǎn)換程序
這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)簡(jiǎn)單的溫度轉(zhuǎn)換程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10