久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > python 列表元素的增加

python 列表元素的增加

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-08 04:01:37 1699387297

可以使用“+”運(yùn)算符將元素添加到列表中。

>>>aList=[3,4,5]

>>>aList=aList+[7]

>>>aList

[3,4,5,7]

嚴(yán)格意義上來講,這并不是真的為列表添加元素,而是創(chuàng)建了一個新列表,并將原列表中的元素和新元素依次復(fù)制到新列表的內(nèi)存空間。由于涉及大量元素的復(fù)制,該操作速度較慢,在涉及大量元素添加時不建議使用該方法。

使用列表對象的append()方法在當(dāng)前列表尾部追加元素,原地修改列表,是真正意義上的在列表尾部添加元素,速度較快。

>>>aList.append(9)

>>>aList

[3,4,5,7,9]

所謂“原地”,是指不改變列表在內(nèi)存中的首地址。

python采用的是基于值的自動內(nèi)存管理方式,當(dāng)為對象修改值時,并不是真的直接修改變量的值,而是使變量指向新的值,這對于Python所有類型的變量都是一樣的。

>>>a=[1,2,3]

>>>id(a)#返回對象的內(nèi)存地址

20230752

>>>a=[1,2]

>>>id(a)

20338208

列表中包含的是元素值的引用,而不是直接包含元素值。

如果是直接修改序列變量的值,則與Python普通變量的情況是一樣的

如果是通過下標(biāo)來修改序列中元素的值或通過可變序列對象自身提供的方法來增加和刪除元素時,序列對象在內(nèi)存中的起始地址是不變的,僅僅是被改變值的元素地址發(fā)生變化,也就是所謂的“原地操作”。

>>>a=[1,2,4]

>>>b=[1,2,3]

>>>a==b

False

>>>id(a)==id(b)

False

>>>id(a[0])==id(b[0])

True

>>>a=[1,2,3]

>>>id(a)

25289752

>>>a.append(4)

>>>id(a)

25289752

>>>a.remove(3)

>>>a

[1,2,4]

>>>id(a)

25289752

>>>a[0]=5

>>>a

[5,2,4]

>>>id(a)

25289752

使用列表對象的extend()方法可以將另一個迭代對象的所有元素添加至該列表對象尾部。通過extend()方法來增加列表元素也不改變其內(nèi)存首地址,屬于原地操作。

>>>a.extend([7,8,9])

>>>a

[5,2,4,7,8,9]

>>>id(a)

25289752

>>>aList.extend([11,13])

>>>aList

[3,4,5,7,9,11,13]

>>>aList.extend((15,17))

>>>aList

[3,4,5,7,9,11,13,15,17]

使用列表對象的insert()方法將元素添加至列表的指定位置。

>>>aList.insert(3,6)#在下標(biāo)為3的位置插入元素6

>>>aList

[3,4,5,6,7,9,11,13,15,17]

應(yīng)盡量從列表尾部進(jìn)行元素的增加與刪除操作。

列表的insert()可以在列表的任意位置插入元素,但由于列表的自動內(nèi)存管理功能,insert()方法會引起插入位置之后所有元素的移動,這會影響處理速度。

類似的還有后面介紹的remove()方法以及使用pop()函數(shù)彈出列表非尾部元素和使用del命令刪除列表非尾部元素的情況。

importtime

defInsert():

a=[]

foriinrange(10000):

a.insert(0,i)

defAppend():

a=[]

foriinrange(10000):

a.append(i)

start=time.time()

foriinrange(10):

Insert()

print('Insert:',time.time()-start)

start=time.time()

foriinrange(10):

Append()

print('Append:',time.time()-start)

上面代碼運(yùn)行結(jié)果如下:

Insert:0.578000068665

Append:0.0309998989105

使用乘法來擴(kuò)展列表對象,將列表與整數(shù)相乘,生成一個新列表,新列表是原列表中元素的重復(fù)。

>>>aList=[3,5,7]

>>>bList=aList

>>>id(aList)

57091464

>>>id(bList)

57091464

>>>aList=aList*3

>>>aList

[3,5,7,3,5,7,3,5,7]

>>>bList

[3,5,7]

>>>id(aList)

57092680

>>>id(bList)

57091464

當(dāng)使用*運(yùn)算符將包含列表的列表重復(fù)并創(chuàng)建新列表時,并不是復(fù)制子列表值,而是復(fù)制已有元素的引用。因此,當(dāng)修改其中一個值時,相應(yīng)的引用也會被修改。

>>>x=[[None]*2]*3

>>>x

[[None,None],[None,None],[None,None]]

>>>x[0][0]=5

>>>x

[[5,None],[5,None],[5,None]]

>>>x=[[1,2,3]]*3

>>>x[0][0]=10

>>>x

[[10,2,3],[10,2,3],[10,2,3]]

以上內(nèi)容為大家介紹了python列表元素的增加,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python 序列化與反序列化如何使用?

根據(jù)某些規(guī)則,將內(nèi)存數(shù)據(jù)保存到文件中時,文件是字節(jié)序列,因此必須將內(nèi)存數(shù)據(jù)轉(zhuǎn)換為字節(jié)序列,然后輸出到文件,這就是序列化;反之,從文件的...詳情>>

2023-11-08 07:01:37
Python企業(yè)應(yīng)用的優(yōu)缺點(diǎn)

Python是軟件開發(fā)領(lǐng)域一朵誘人的奇葩:人們經(jīng)常把Python看作是一種起到縫合作用的嚴(yán)格腳本語言,不過卻很少有人意識到Python已經(jīng)足夠強(qiáng)大到應(yīng)用...詳情>>

2023-11-08 06:25:37
python 關(guān)鍵字參數(shù)

可變參數(shù)允許你傳入0個或任意個參數(shù),這些可變參數(shù)在函數(shù)調(diào)用時自動組裝為一個tuple。而關(guān)鍵字參數(shù)允許你傳入0個或任意個含參數(shù)名的參數(shù),這些...詳情>>

2023-11-08 04:59:13
python 列表元素的刪除

使用del命令刪除列表中的指定位置上的元素。>>>a_list=[3,5,7,9,11]>>>dela_list[1]>>>a_list[3,7,9,11]使用列表的pop()方法刪除并返回指定位置...詳情>>

2023-11-08 03:58:01
python 插入排序

原理插入排序(InsertionSort)是一種簡單直觀的排序算法。它的工作原理是通過構(gòu)建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到...詳情>>

2023-11-08 02:56:48