官术网_书友最值得收藏!

2.2.2 列表的基本操作與方法

2-2 列表的基本操作與方法

1.通用操作

作為序列的一員,列表可使用“+”和“*”操作符,前者用于組合列表,后者用于重復(fù)列表。

與列表相關(guān)的函數(shù)有:①len()返回列表元素個(gè)數(shù);②max()返回列表元素最大值;③min()返回列表元素最小值。

【例2-9】 操作符、函數(shù)在列表表達(dá)式或語(yǔ)句中的使用。

運(yùn)算結(jié)果:

2.刪除列表

對(duì)于已經(jīng)創(chuàng)建的列表,如果不再使用,可以使用del關(guān)鍵字將其刪除。

del關(guān)鍵字的語(yǔ)法格式為:

其中,listname表示要?jiǎng)h除列表的名稱(chēng)。

【例2-10】 刪除列表。

運(yùn)算結(jié)果:

在實(shí)際開(kāi)發(fā)中并不經(jīng)常使用del來(lái)刪除列表,因?yàn)镻ython自帶的垃圾回收機(jī)制會(huì)自動(dòng)銷(xiāo)毀無(wú)用的列表,即使開(kāi)發(fā)者不手動(dòng)刪除,Python也會(huì)自動(dòng)將其回收。

3.append()方法添加元素

append()方法用于在列表的末尾追加元素,該方法的語(yǔ)法格式如下:

其中,listname表示要添加元素的列表;obj表示要添加到列表末尾的數(shù)據(jù),它可以是單個(gè)元素,也可以是列表、元組等。

【例2-11】 用append()方法添加元素。

運(yùn)算結(jié)果:

從本例可以看出,當(dāng)給append()方法傳遞列表或者元組時(shí),此方法會(huì)將它們視為一個(gè)整體,作為一個(gè)元素添加到列表中,從而形成包含列表和元組的新列表。

4.extend()方法添加元素

extend()和append()的不同之處在于:extend()不會(huì)把列表或者元組視為一個(gè)整體,而是把它們包含的元素逐個(gè)添加到列表中。

extend()方法的語(yǔ)法格式如下:

其中,listname指的是要添加元素的列表;obj表示要添加到列表末尾的數(shù)據(jù),它可以是單個(gè)元素,也可以是列表、元組等。

【例2-12】 用extend()方法添加元素。

運(yùn)算結(jié)果:

5.insert()方法插入元素

append()和extend()方法只能在列表末尾插入元素,如果希望在列表中間某個(gè)位置插入元素,那么可以使用insert()方法。

insert()的語(yǔ)法格式如下:

其中,index表示指定位置的索引值。insert()會(huì)將obj插入到listname列表第index個(gè)元素的位置。

當(dāng)插入列表或者元組時(shí),insert()也會(huì)將它們視為一個(gè)整體,作為一個(gè)元素插入到列表中,這一點(diǎn)和append()是一樣的。

【例2-13】 用insert()方法插入元素。

運(yùn)算結(jié)果:

6.del刪除元素

del是Python中的關(guān)鍵字,專(zhuān)門(mén)用來(lái)執(zhí)行刪除操作,它不僅可以刪除整個(gè)列表,還可以刪除列表中的某些元素。

del可以刪除列表中的單個(gè)元素,格式為:

其中,listname表示列表名稱(chēng),index表示元素的索引值。

del也可以刪除中間一段連續(xù)的元素,格式為:

其中,start表示起始索引,end表示結(jié)束索引。del會(huì)刪除從索引start到end之間的元素,不包括end位置的元素。

【例2-14】 使用del刪除單個(gè)列表元素。

運(yùn)算結(jié)果:

【例2-15】 使用del刪除一段連續(xù)的元素。

運(yùn)算結(jié)果:

7.pop()刪除元素

用pop()方法刪除列表中指定索引處的元素,具體格式如下:

其中,listname表示列表名稱(chēng),index表示索引值。如果不寫(xiě)index參數(shù),默認(rèn)會(huì)刪除列表中的最后一個(gè)元素,類(lèi)似于數(shù)據(jù)結(jié)構(gòu)中的“出棧”操作。

至于數(shù)據(jù)結(jié)構(gòu)中的“入棧”操作,Python并沒(méi)有提供相應(yīng)的push()方法,這時(shí)可以使用append()來(lái)代替。

【例2-16】 根據(jù)索引值刪除元素。

運(yùn)算結(jié)果:

8.remove()刪除

除了del關(guān)鍵字,Python列表還提供了remove()方法,該方法會(huì)根據(jù)元素本身的值來(lái)進(jìn)行刪除操作。需要注意的是,remove()方法只會(huì)刪除第一個(gè)和指定值相同的元素,而且必須保證該元素是存在的,否則會(huì)引發(fā)ValueError錯(cuò)誤。

【例2-17】 根據(jù)索引值刪除元素。

運(yùn)算結(jié)果:

9.clear()刪除列表所有元素

clear()用來(lái)刪除列表的所有元素,即清空列表。

【例2-18】 清空列表。

運(yùn)算結(jié)果:

10.列表修改元素

有兩種修改列表(list)元素的方法,可以每次修改單個(gè)元素,也可以每次修改一組元素(多個(gè))。

(1)修改單個(gè)元素

修改單個(gè)元素非常簡(jiǎn)單,直接對(duì)元素賦值即可。

【例2-19】 修改列表的單個(gè)元素。

運(yùn)算結(jié)果:

使用索引得到列表元素后,通過(guò)“=”賦值就改變了元素的值。

(2)修改一組元素

Python支持通過(guò)切片語(yǔ)法給一組元素賦值。在進(jìn)行這種操作時(shí),如果不指定步長(zhǎng)(step參數(shù)),Python就不要求新賦值的元素個(gè)數(shù)與原來(lái)的元素個(gè)數(shù)相同;這意味著該操作既可以為列表添加元素,也可以為列表刪除元素。

【例2-20】 修改列表的一組元素。

運(yùn)算結(jié)果:

【例2-21】 使用字符串賦值時(shí)自動(dòng)把字符串轉(zhuǎn)換成每個(gè)字符都是一個(gè)元素的序列。

運(yùn)算結(jié)果:

【例2-22】 使用切片語(yǔ)法時(shí)指定步長(zhǎng)(step參數(shù))。

運(yùn)算結(jié)果:

本例中,使用切片語(yǔ)法指定步長(zhǎng)時(shí),要求所賦值的新元素個(gè)數(shù)與原有元素的個(gè)數(shù)相同。

11.count()方法

count()方法用來(lái)統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù),基本語(yǔ)法格式為:

其中,listname代表列表名,obj表示要統(tǒng)計(jì)的元素。

如果count()返回0,表示列表中不存在該元素,所以count()也可以用來(lái)判斷列表中的某個(gè)元素是否存在。

【例2-23】 count()方法用于統(tǒng)計(jì)元素個(gè)數(shù)和判斷元素存在與否。

運(yùn)算結(jié)果:

12.index()方法

index()方法用來(lái)查找某個(gè)元素在列表中出現(xiàn)的位置(也就是索引),如果該元素不存在,則會(huì)導(dǎo)致ValueError錯(cuò)誤,所以在查找之前最好使用count()方法判斷一下。

index()的語(yǔ)法格式為:

其中,listname表示列表名稱(chēng),obj表示要查找的元素,start表示起始位置,end表示結(jié)束位置。

start和end參數(shù)用來(lái)指定檢索范圍。

start和end可以都不寫(xiě),此時(shí)會(huì)檢索整個(gè)列表。

如果只寫(xiě)start不寫(xiě)end,那么表示檢索從start到末尾的元素。

如果start和end都寫(xiě),那么表示檢索start和end之間的元素。

index()方法會(huì)返回元素所在列表中的索引值。

【例2-24】 返回元素所在列表中的索引值。

運(yùn)算結(jié)果:

主站蜘蛛池模板: 密云县| 阿合奇县| 长寿区| 思南县| 武平县| 江津市| 吉木萨尔县| 韶山市| 穆棱市| 湘阴县| 恩平市| 健康| 蚌埠市| 常山县| 湖口县| 鄂温| 宁城县| 繁昌县| 莆田市| 南城县| 无锡市| 东港市| 平潭县| 余姚市| 泗洪县| 芷江| 年辖:市辖区| 通海县| 古蔺县| 乐平市| 千阳县| 博湖县| 廉江市| 刚察县| 从江县| 大连市| 凤翔县| 满洲里市| 内乡县| 隆子县| 普陀区|