版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4章列表和元組
學(xué)習(xí)任務(wù)1.掌握序列的通用操作。2.掌握列表推導(dǎo)式。3.掌握元組推導(dǎo)式。4.了解元組和列表的區(qū)別。4.1序列在Python中,序列類型包括字符串、列表、元組、集合和字典,這些序列支持一些幾種通用的操作,但是值得注意的是,集合和字典不支持索引、切片、相加以及相乘操作。序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)。序列從零開始索引,因此第一個(gè)元素的索引是0,第二個(gè)索引是1,依此類推。序列包含的通用操作包括索引、切片、加、乘、檢查成員等。此外,Python已經(jīng)內(nèi)置計(jì)算序列的長度以及計(jì)算序列中最大或者最小的元素的方法。4.1.1索引序列中,通過索引訪問每一個(gè)元素。從起始元素開始,索引值從0開始遞增,如圖所示。4.1.1索引另外,Python還支持負(fù)數(shù)索引值,負(fù)數(shù)索引是從右向左計(jì)數(shù),也就是說,負(fù)數(shù)索引從最后一個(gè)元素開始計(jì)數(shù),最后一個(gè)元素的索引值為-1開始,倒數(shù)第2個(gè)元素的索引為-2,以此類推,如圖所示。4.1.1索引不管是使用正索引值,還是負(fù)索引值,都可以訪問序列中的任意元素。以字符串為例,訪問字符串“武漢軟件工程職業(yè)學(xué)院”的首元素和尾元素,可以使用如下的代碼。4.1.2序列切片我們還可以使用切片操作訪問序列中得元素,切片是Python極其有用的功能,它使我們能夠使用簡單明了的語法來操作序列。切片簡單來說就是從序列中切取我們需要的值,并生成一個(gè)新的序列。序列實(shí)現(xiàn)切片操作的語法格式如下:sname[start:end:step]4.1.2序列切片例如,對字符串“武漢軟件工程職業(yè)學(xué)院”進(jìn)行切片:4.1.3序列相加Python中,通過使用加法運(yùn)算符+可以進(jìn)行序列的連接操作,做連接操作需要序列的類型相同,它會將兩個(gè)序列中的元素進(jìn)行連接,但不會去除重復(fù)的元素。序列的“類型相同”,指的是“+”運(yùn)算符的兩側(cè)序列要么都是列表類型,要么都是元組類型,要么都是字符串。4.1.3序列相加下面,我們通過一個(gè)例子講解序列相加,例如:4.1.4序列相乘Python中,可以使用數(shù)字n乘以一個(gè)序列,結(jié)果會生成新的序列,新序列的內(nèi)容是原來的序列被重復(fù)n次的結(jié)果。例如:4.1.5檢查元素是否包含在序列中Python中,可以使用in關(guān)鍵字來判斷某個(gè)元素是否包含在序列中,其語法格式為:valueinsequence其中,value表示要檢查的元素,sequence表示指定的序列。例如,檢查字符‘大’是否包含在字符串“大數(shù)據(jù)技術(shù)”中,可以執(zhí)行如下代碼:4.1.6和序列相關(guān)的內(nèi)置函數(shù)4.2列表在實(shí)際開發(fā)中,經(jīng)常需要將一組數(shù)據(jù)存儲起來,以便后邊的代碼使用。說到這里,一些讀者可能聽說過數(shù)組(Array),數(shù)組可以把多個(gè)數(shù)據(jù)按順序存儲到一起,然后通過下標(biāo)就可以訪問數(shù)組中的每個(gè)元素。值得注意的是,Python中沒有數(shù)組,但是Python中引入了功能更加強(qiáng)大的列表。列表是Python中內(nèi)置的有序、可變序列,列表的所有元素放在一對中括號“[]”中,并使用逗號分隔,Python中列表的定義格式如下所示:[element1,element2,element3,...,elementn]4.2列表列表中元素的個(gè)數(shù)和類型沒有限制,只要是Python支持的數(shù)據(jù)類型就可以,列表可以存儲整數(shù)、小數(shù)、字符串、列表、元組等任何類型的數(shù)據(jù),并且同一個(gè)列表中元素的類型也可以不同。例如:["/",5,[6,7,8],6.8]可以發(fā)現(xiàn),列表中可以同時(shí)包含字符串、整數(shù)、列表、浮點(diǎn)數(shù)這些數(shù)據(jù)類型。值得注意的是,在使用列表時(shí),雖然可以將不同類型的數(shù)據(jù)放入到同一個(gè)列表中,但是通常情況下不建議這么做,在一個(gè)列表中一般只存入同一類型的數(shù)據(jù),這樣可以提高程序的可讀性。4.2.1Python創(chuàng)建列表1.使用[]直接創(chuàng)建列表:使用[]創(chuàng)建列表時(shí),通常使用=將創(chuàng)建出來的列表賦值給某個(gè)變量,具體語法格式如下所示:listname=[element1,element2,element3,...,elementn]其中,listname表示列表的變量名,element1~elementn表示列表元素。4.2.1Python創(chuàng)建列表例如,可以通過下列語句使用[]創(chuàng)建列表:另外,在創(chuàng)建列表時(shí),列表中元素可以有多個(gè),也可以一個(gè)都沒有,例如如下語句,這里創(chuàng)建了一個(gè)空列表emptylist:4.2.1Python創(chuàng)建列表2.使用list()函數(shù)創(chuàng)建列表除了使用[]創(chuàng)建列表外,Python還提供了一個(gè)內(nèi)置的函數(shù)list(),使用它可以將其它數(shù)據(jù)類型轉(zhuǎn)換為列表類型。4.2.1Python創(chuàng)建列表4.2.2訪問列表元素列表是Python序列的一種,我們可以使用索引訪問列表中的某個(gè)元素,得到索引對應(yīng)的元素的值,也可以使用切片訪問列表中的一組元素(得到的是一個(gè)新的列表)。使用索引訪問列表元素的格式為:listname[i]4.2.2訪問列表元素其中,listname表示列表名字,i表示索引值。列表的索引可以是正數(shù),也可以是負(fù)數(shù),當(dāng)索引值為負(fù)值時(shí),負(fù)數(shù)索引從最后一個(gè)元素開始計(jì)數(shù),最后一個(gè)元素的索引值為-1開始,倒數(shù)第2個(gè)元素的索引為-2,以此類推。使用切片訪問列表元素的格式為:listname[start:end:step]其中,listname表示列表名字,start表示起始索引,end表示結(jié)束索引,step表示步長。4.2.3Python刪除列表對于已經(jīng)創(chuàng)建的列表,如果不再使用,可以使用del關(guān)鍵字將其刪除。實(shí)際開發(fā)中并不經(jīng)常使用del來刪除列表,因?yàn)镻ython自帶的垃圾回收機(jī)制會自動(dòng)銷毀無用的列表,即使開發(fā)者不手動(dòng)刪除,Python也會自動(dòng)將其回收。del關(guān)鍵字的語法格式為:dellistname其中,listname表示要?jiǎng)h除列表的名稱。4.2.4遍歷列表2.使用enumerate遍歷列表。如果我們想將列表轉(zhuǎn)換為可迭代的元組列表(或基于條件檢查獲得索引,例如在線性搜索中,可能需要保存最小元素的索引),則可以使用enumerate()函數(shù)。如下面的例子所示:4.2.4遍歷列表4.2.5添加、修改和刪除列表元素在實(shí)際開發(fā)中,經(jīng)常需要對Python列表進(jìn)行更新,包括向列表中添加元素、修改表中元素以及刪除元素。1.添加元素4.1節(jié)告訴我們,使用+運(yùn)算符可以將多個(gè)序列連接起來,使用+運(yùn)算符可以實(shí)現(xiàn)為列表添加元素,除了使用加號“+”將兩個(gè)序列連接,我們推薦使用append()方法,使用append()方法可以將添加的元素放到列表的末尾,下面通過一個(gè)例子展示其用法。4.2.5添加、修改和刪除列表元素4.2.5添加、修改和刪除列表元素2.修改元素修改元素只需要通過索引獲取該元素,然后再為其重新賦值即可,如下面例子所示。4.2.5添加、修改和刪除列表元素3.刪除元素使用del操作符根據(jù)索引刪除列表元素,如下面例子所示。4.2.6對列表進(jìn)行統(tǒng)計(jì)計(jì)算1.獲取指定元素出現(xiàn)次數(shù)列表可以調(diào)用count()方法獲取指定元素出現(xiàn)次數(shù),如下面的例子所示。4.2.6對列表進(jìn)行統(tǒng)計(jì)計(jì)算2.獲取指定元素首次出現(xiàn)的下標(biāo)列表可以調(diào)用index()方法獲取指定元素首次出現(xiàn)的下標(biāo),如下面的例子所示。4.2.6對列表進(jìn)行統(tǒng)計(jì)計(jì)算3.統(tǒng)計(jì)數(shù)值列表的元素和列表可以調(diào)用sum()方法統(tǒng)計(jì)數(shù)值列表的元素和,如下面的例子所示。4.2.7對列表進(jìn)行排序列表可以調(diào)用sort()方法排序,注意原列表里面的元素順序會發(fā)生改變,如下面的例子所示。4.2.7對列表進(jìn)行排序使用列表推導(dǎo)式可以快速生成一個(gè)列表,其語法如下所示。list=[expressionforvarinrange]下面看個(gè)例子。4.3元組Python的元組與列表類似,不同之處在于元組的元素不能修改。元組和列表同屬序列類型,且都可以按照特定順序存放一組數(shù)據(jù),數(shù)據(jù)類型不受限制,只要是Python支持的數(shù)據(jù)類型就可以。那么,元組和列表有哪些區(qū)別呢?元組和列表最大的區(qū)別就是,列表中的元素可以進(jìn)行任意修改,而元組中的元素?zé)o法修改,除非將元組整體替換掉。元組使用小括號()創(chuàng)建,元組創(chuàng)建很簡單,只需要在括號中添加元素,并使用逗號隔開即可。4.3.1元組的創(chuàng)建和刪除1.使用賦值運(yùn)算符直接創(chuàng)建元組創(chuàng)建元組時(shí),可以使用賦值運(yùn)算符=將一個(gè)元組直接賦值給一個(gè)變量,Python中元組的定義格式如下所示:(element1,element2,element3,...,elementn)格式中,element1~elementn表示元組中的元素,元組中元素的個(gè)數(shù)和類型沒有限制,只要是Python支持的數(shù)據(jù)類型就可以,元組可以存儲整數(shù)、小數(shù)、字符串、列表、元組等任何類型的數(shù)據(jù),并且同一個(gè)元組中元素的類型也可以不同。4.3.1元組的創(chuàng)建和刪除4.3.1元組的創(chuàng)建和刪除在Python中,雖然通常用小括號()來定義元組,但是實(shí)際上,小括號也不是必須的,只要用逗號將一系列值連起來,Python就認(rèn)為它是元組,如下面的例子所示。4.3.1元組的創(chuàng)建和刪除另外要注意的是,如果定義一個(gè)元組中只有一個(gè)元素,要在這個(gè)元素的后面加上逗號“,”,如下面的例子所示。4.3.1元組的創(chuàng)建和刪除2.創(chuàng)建空元組在Python中也可以創(chuàng)建空元祖,空元祖可以作為參數(shù)傳給函數(shù),也可以作為函數(shù)的返回值,例如下面的例子,定義了一個(gè)空元祖emptytuple。emptytuple=()4.3.1元組的創(chuàng)建和刪除3.創(chuàng)建數(shù)值元組在Python中,可以使用tuple()函數(shù)將range()函數(shù)返回的值直接轉(zhuǎn)換成一個(gè)元組。tuple()函數(shù)的語法如下所示:tuple(data)其中data是可以轉(zhuǎn)換成元組中元素的數(shù)據(jù),它可以是range()函數(shù)返回的值、字符串、元組或者其他可迭代類型。例如下面的例子創(chuàng)建了一個(gè)元組,包含了20到30間的所有奇數(shù)。4.3.1元組的創(chuàng)建和刪除4.刪除元組如果一個(gè)元組不再使用,那么可以使用del語句將其刪除,其語法如下所示。deltuplename其中,tuplename是要被刪除的元組名稱。如下面的例子所示,這個(gè)例子中,元組cources已經(jīng)被刪除,因此打印它的值會拋出異常。4.3.2訪問元組元素2.創(chuàng)建空元組在Python中可以通過print()函數(shù)將元組中元素的值打印出來。如下面的例子所示。4.3.3修改元組元素元組是不可變序列,所以我們不能對它的單個(gè)元素值進(jìn)行修改,如果修改元組中的單個(gè)元素,會拋出異常。如下面的例子所示。2.3基本數(shù)據(jù)類型兩個(gè)字符串可以使用“+”進(jìn)行連接合并操作,兩個(gè)字符串連接時(shí)之間沒有空格。4.3.4元組推導(dǎo)式在Python中,我們可以通過元組推導(dǎo)式快速生成一個(gè)元組,需要注意的是,轉(zhuǎn)換為元組要使用tuple()函數(shù)。在這個(gè)例子中,使用元組生成器生成的并不是一個(gè)元組或者列表,而是一個(gè)生成器對象,將生成器對象轉(zhuǎn)換為元組要使用tuple()函數(shù)。小結(jié)本章主要介紹了序列,以及兩種常見序列列表和元組。本章首先介紹了序列的概念及其通用操作,例如索引、切片、序列相加、序列相乘以及序列相關(guān)的內(nèi)置函數(shù),然后介紹了列表的常用操作以及列表推導(dǎo)式的應(yīng)用,最后介紹了元組和列表的區(qū)別、元組的常用操作以及元組推導(dǎo)式的應(yīng)用。列表和元組在Python開發(fā)中運(yùn)用的非常廣泛,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紅巖課件教學(xué)課件
- 教我作文課件教學(xué)課件
- 露天作業(yè)課件教學(xué)課件
- 2024年度玻璃經(jīng)銷合同
- 2024年工程建設(shè)項(xiàng)目材料供應(yīng)協(xié)議
- 2024年度生物醫(yī)藥研發(fā)與技術(shù)合作合同
- 2024年bulk貨物運(yùn)輸協(xié)議
- 2024年云服務(wù)器租賃及托管合同
- 2024幕墻設(shè)計(jì)合同
- 2024年度虛擬現(xiàn)實(shí)技術(shù)研發(fā)與許可合同
- 浙江省溫州市地圖矢量PPT模板(圖文)
- 上海市建設(shè)工程項(xiàng)目管理機(jī)構(gòu)管理人員情況表
- 北師大版二年級數(shù)學(xué)上冊第九單元《除法》知識點(diǎn)梳理復(fù)習(xí)ppt
- 空氣能室外機(jī)保養(yǎng)維護(hù)記錄表
- DB37∕T 5162-2020 裝配式混凝土結(jié)構(gòu)鋼筋套筒灌漿連接應(yīng)用技術(shù)規(guī)程
- 9-2 《第三方過程評估淋蓄水檢查內(nèi)容》(指引)
- 部編版七年級初一語文上冊《狼》公開課課件(定稿)
- 2015路面工程講義(墊層+底基層+基層+面層+聯(lián)合層+封層、透層與黏層)
- 《現(xiàn)代漢語修辭》PPT課件(完整版)
- TTJCA 0007-2022 住宅室內(nèi)裝飾裝修工程施工驗(yàn)收規(guī)范
- 構(gòu)造柱工程施工技術(shù)交底
評論
0/150
提交評論