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

4.3 列表

列表是元素按順序排列構(gòu)成的有序的集合,其中的每個(gè)元素都有各自的位置編號,方便索引操作。列表非常好的優(yōu)勢是,里面的元素可以是各種類型共存的,可以是數(shù)字、字符串甚至還可以是列表、元組、字典等。列表中的元素是可以被修改的。

4.3.1 直接創(chuàng)建列表

可以用方括號直接創(chuàng)建元組,括號里的元素用逗號隔開。當(dāng)[ ]內(nèi)不存在任何元素時(shí),便創(chuàng)建了一個(gè)空列表。

【例4-5】用方括號創(chuàng)建列表。

程序運(yùn)行結(jié)果如圖4-6所示。

圖4-6 創(chuàng)建列表運(yùn)行程序

4.3.2 用list()函數(shù)創(chuàng)建列表

其實(shí),list()函數(shù)實(shí)質(zhì)是把目標(biāo)對象轉(zhuǎn)為列表的類型。同直接創(chuàng)建列表的方式很像,這里是在list()函數(shù)后面用圓括號將目標(biāo)對象轉(zhuǎn)為列表類型。可以在list的圓括號中放入建立列表需要的元素,這些元素放入時(shí)必須是一個(gè)元組對象或者是一個(gè)列表對象,不可以直接將元素列進(jìn)list()函數(shù)中的括號里,也可以將某一變量放進(jìn)去,list()函數(shù)會(huì)幫助我們自動(dòng)將元素轉(zhuǎn)為列表的形式。同樣,如果沒有傳入任何元素,將創(chuàng)建一個(gè)空的列表。

【例4-6】用list()函數(shù)創(chuàng)建列表。

程序運(yùn)行結(jié)果如圖4-7所示。

圖4-7 創(chuàng)建列表運(yùn)行程序

4.3.3 列表元素提取

列表中的元素都是有位置的,因此常用的元素提取方法有索引提取和列表切片操作提取。每一次通過位置進(jìn)行索引訪問都能得到列表中唯一對應(yīng)的元素,使用切片操作則會(huì)得到一段包含對應(yīng)元素的列表。

(1)索引提取元素:利用序列的索引進(jìn)行元素提取的方法。通過元素的位置,提取元素,在列表對象后面使用方括號包含索引數(shù)。例如,list[0],list[1],list[2],…注意不能超過列表總長度。

如果想要從列表尾部快速索引元素,則可以使用負(fù)數(shù),例如:list[-1],list[-2],list[-3],…

【例4-7】索引提取元素。

程序運(yùn)行結(jié)果如圖4-8所示。

圖4-8 索引提取元素運(yùn)行程序

(2)切片提取元素:使用切片提取列表的某段元素時(shí),無須考慮超出索引范圍的問題。需要注意的是,列表的切片是一個(gè)元組類型。

【例4-8】切片提取元素。

程序運(yùn)行結(jié)果如圖4-9所示。

圖4-9 切片提取元素運(yùn)行程序

(3)列表反轉(zhuǎn):使用切片時(shí),list[::-1]這個(gè)操作可以得到list列表的反轉(zhuǎn)列表。

【例4-9】列表反轉(zhuǎn)。

程序運(yùn)行結(jié)果如圖4-10所示。

圖4-10 列表反轉(zhuǎn)運(yùn)行程序

4.3.4 操作列表的常用函數(shù)

列表在Python中是可變的數(shù)據(jù)結(jié)構(gòu),因此Python提供很多方便的函數(shù)幫助用戶對列表的元素進(jìn)行操作,常見的操作有元素的增刪改查等。

1. 增添元素

append()函數(shù)將在列表尾部傳入一個(gè)元素:list.append(1)。

extend()函數(shù)可以將列表1和列表2拼接在一起:list1.extend(list2)。

insert()函數(shù)可以在列表中的指定位置插入一個(gè)元素:list.insert(位置,元素)。

注意:使用append()和insert()時(shí),一次只能添加一個(gè)元素;使用extend()時(shí)是將列表拼接在另一個(gè)列表尾部。

【例4-10】添加元素。

程序運(yùn)行結(jié)果如圖4-11所示。

圖4-11 添加元素運(yùn)行程序

2. 刪除元素

del()函數(shù)將列表中提取出的元素刪除(用索引提取):del list[0]。

pop()函數(shù)根據(jù)索引獲取該元素并刪除:list.pop(0)。

remove()函數(shù)將指定元素刪除:list.remove(1)。

注意:使用pop()函數(shù)時(shí),若不指定元素位置,將默認(rèn)使用索引-1;remove()刪除指定元素時(shí),只會(huì)將第一次出現(xiàn)的該元素刪除。

【例4-11】刪除元素。

程序運(yùn)行結(jié)果如圖4-12所示。

圖4-12 刪除元素運(yùn)行程序

3. 修改元素

根據(jù)列表元素可變的特性,可以直接提取元素并進(jìn)行重新賦值,從而完成修改元素的操作。提取元素根據(jù)元素地址索引進(jìn)行。

4. copy方法

有時(shí)需要在保存原來的列表數(shù)據(jù)的同時(shí)對這個(gè)列表進(jìn)行變更操作,此時(shí)會(huì)用到copy方法。copy方法能夠創(chuàng)建一個(gè)完全一樣的列表,雖然意思上是一樣的列表,但只是元素一樣,copy后的一個(gè)列表已經(jīng)是一個(gè)新的列表。

【例4-12】copy方法。

程序運(yùn)行結(jié)果如圖4-13所示。

圖4-13 copy方法運(yùn)行程序

5. index查詢

index能夠幫助我們快速查找某元素在該列表中的位置。

【例4-13】index查詢。

程序運(yùn)行結(jié)果如圖4-14所示。

圖4-14 index查詢運(yùn)行程序

主站蜘蛛池模板: 长丰县| 津南区| 哈密市| 花莲市| 浑源县| 广河县| 东港市| 康平县| 西城区| 湟源县| 大连市| 酒泉市| 南岸区| 柳林县| 墨玉县| 缙云县| 宾川县| 宁海县| 拉孜县| 芦溪县| 灵台县| 府谷县| 宁晋县| 夏邑县| 富平县| 迁安市| 泗洪县| 正阳县| 达尔| 乡宁县| 金湖县| 谷城县| 温州市| 池州市| 城固县| 陇南市| 称多县| 颍上县| 敦化市| 怀化市| 东宁县|