Python編程基礎(chǔ)(第3版)(微課版)課件 3.2 創(chuàng)建列表并進(jìn)行增、刪、改、查等操作_第1頁(yè)
Python編程基礎(chǔ)(第3版)(微課版)課件 3.2 創(chuàng)建列表并進(jìn)行增、刪、改、查等操作_第2頁(yè)
Python編程基礎(chǔ)(第3版)(微課版)課件 3.2 創(chuàng)建列表并進(jìn)行增、刪、改、查等操作_第3頁(yè)
Python編程基礎(chǔ)(第3版)(微課版)課件 3.2 創(chuàng)建列表并進(jìn)行增、刪、改、查等操作_第4頁(yè)
Python編程基礎(chǔ)(第3版)(微課版)課件 3.2 創(chuàng)建列表并進(jìn)行增、刪、改、查等操作_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

創(chuàng)建列表并進(jìn)行增、刪、改、查等操作1列表的基本操作目錄創(chuàng)建列表2列表常用方法和函數(shù)3【任務(wù)3-1】實(shí)現(xiàn)某超市營(yíng)業(yè)額數(shù)據(jù)的存儲(chǔ)、查詢與修改4列表是Python對(duì)象作為其元素并按順序排列構(gòu)成的有序集合,列表中的每個(gè)元素都有各自的位置編號(hào),稱(chēng)為索引。列表中的元素可以是各種類(lèi)型的對(duì)象,如數(shù)字、字符串、元組、字典,還有列表對(duì)象。列表中的元素可以重復(fù)出現(xiàn)。列表是可變數(shù)據(jù)類(lèi)型,可對(duì)列表對(duì)象中的元素進(jìn)行增添、刪除、修改、查詢等操作。常用的創(chuàng)建列表的方法有兩種,一種是使用方括號(hào)([])進(jìn)行創(chuàng)建,另一種是使用list函數(shù)進(jìn)行創(chuàng)建。創(chuàng)建列表使用方括號(hào)創(chuàng)建列表時(shí),只需要把所需的列表元素用逗號(hào)隔開(kāi),并用方括號(hào)將其括起來(lái)即可。當(dāng)使用方括號(hào)而不傳入任何元素時(shí),創(chuàng)建的是一個(gè)空列表。列表中允許包含任意類(lèi)型的對(duì)象,其中也包括列表對(duì)象,即可以創(chuàng)建嵌套列表。使用方括號(hào)創(chuàng)建列表的示例如下。使用方括號(hào)創(chuàng)建列表>>>#創(chuàng)建包含混合數(shù)據(jù)類(lèi)型的嵌套列表>>>mylist=[1,2.0,['three','four',5],6.5,True]>>>print(mylist)#查看列表內(nèi)容[1,2.0,['three','four',5],6.5,True]>>>empty_list=[]#創(chuàng)建空列表>>>print(empty_list)[]>>>mylist1=[[1,2,3],[4,5,6],[7,8,9]]#創(chuàng)建二維列表>>>print(mylist1)[[1,2,3],[4,5,6],[7,8,9]]使用方括號(hào)創(chuàng)建列表在Python中,list函數(shù)的作用實(shí)質(zhì)上是將傳入的數(shù)據(jù)結(jié)構(gòu)對(duì)象轉(zhuǎn)換成列表對(duì)象。使用list函數(shù)時(shí),可以用圓括號(hào)或方括號(hào)把元素按順序括起來(lái),元素之間以逗號(hào)隔開(kāi),并傳入函數(shù)中。如果不傳入任何對(duì)象到list函數(shù)中,那么將會(huì)創(chuàng)建一個(gè)空列表。使用list函數(shù)創(chuàng)建列表的示例如下。使用list函數(shù)創(chuàng)建列表>>>#向list函數(shù)傳入一個(gè)對(duì)象>>>mylist=list((1,2.0,['three','four',5],6.5,True))>>>print(mylist)[1,2.0,['three','four',5],6.5,True]>>>print(type(mylist))#查看對(duì)象類(lèi)型<class'list'>>>>empty_list=list()#創(chuàng)建空列表>>>print(empty_list)[]>>>mylist2=list(['one','two','three'])#向list函數(shù)傳入一個(gè)列表對(duì)象>>>print(mylist2)['one','two','three']>>>print(list('helloworld!'))#向list函數(shù)傳入一個(gè)字符串['h','e','l','l','o','','w','o','r','l','d','!']使用list函數(shù)創(chuàng)建列表1列表的基本操作目錄創(chuàng)建列表2列表常用方法和函數(shù)3【任務(wù)3-1】實(shí)現(xiàn)某超市營(yíng)業(yè)額數(shù)據(jù)的存儲(chǔ)、查詢與修改4序列類(lèi)型的數(shù)據(jù)結(jié)構(gòu)都可以通過(guò)索引和切片操作對(duì)元素進(jìn)行提取,字符串、列表和元組都屬于序列類(lèi)型。列表的索引從0開(kāi)始、以1為步長(zhǎng)逐漸遞增,這種索引的定義方式或許與我們通常所理解的從1開(kāi)始有所出入。列表元素的提取方法有兩種,索引訪問(wèn)提取和切片操作提取。其中,索引訪問(wèn)提取僅返回一個(gè)索引對(duì)應(yīng)的元素,切片操作提取會(huì)返回列表中對(duì)應(yīng)的子列表。1.列表索引為了提取列表中的某個(gè)元素,可以在列表對(duì)象后面緊接方括號(hào)并在其中指定索引。列表的索引訪問(wèn)提取的具體格式為sequence_name[index],即列表對(duì)象[索引]。Python允許傳入負(fù)索引來(lái)進(jìn)行元素提取,可以從列表尾端提取元素。索引訪問(wèn)提取的示例如下。2.索引訪問(wèn)提取>>>mylist3=['Sunday','Monday','Tuesday',...'Wednesday','Thursday','Friday']>>>print(mylist3[1])#提取列表中第2個(gè)元素'Monday'>>>print(mylist3[-3])#提取列表中倒數(shù)第3個(gè)元素'Wednesday'>>>print(mylist3[7])#傳入的索引大于最后一個(gè)元素的正索引IndexError:listindexoutofrange>>>print(mylist3[-10])#傳入的索引小于第1個(gè)元素的負(fù)索引IndexError:listindexoutofrange2.索引訪問(wèn)提取索引錯(cuò)誤示例對(duì)列表進(jìn)行處理時(shí)可能需要提取列表中的子列表,需要通過(guò)列表的切片操作來(lái)完成。在進(jìn)行切片操作時(shí),只需要傳入要提取子列表的起始元素索引、終止元素索引,以及步長(zhǎng)值,此時(shí)得到的列表切片將包含從起始元素開(kāi)始,以步長(zhǎng)值為間隔,到終止元素之前的所有元素。切片操作格式為sequence_name[start:end:step],即列表對(duì)象[起始元素索引:終止元素索引:步長(zhǎng)值]。在切片操作格式當(dāng)中,默認(rèn)步長(zhǎng)值為1,此時(shí)格式中的第2個(gè)冒號(hào)可以省略。當(dāng)步長(zhǎng)值為正數(shù)時(shí),表示切片從左往右提取元素,一般需要起始元素位置小于終止元素位置;若步長(zhǎng)值為負(fù)數(shù),則表示從右往左提取,此時(shí)起始元素位置應(yīng)該大于終止元素位置。切片操作提取的示例如下。3.切片操作提取>>>#步長(zhǎng)值為正數(shù)時(shí)的切片操作>>>mylist4=[10,20,30,40,50,60,70,80,90,100]>>>print(mylist4[2:7])#提取第3~7個(gè)元素[30,40,50,60,70]>>>print(mylist4[1:9:2])#提取第2~9個(gè)元素之間的元素,步長(zhǎng)值為2[20,40,60,80]>>>#步長(zhǎng)值為負(fù)數(shù)時(shí)的切片操作>>>print(mylist4[-2:-8:-2])#提取倒數(shù)第2個(gè)至倒數(shù)第8個(gè)元素之間的元素,步長(zhǎng)值為2[90,70,50]>>>print(mylist4[1:4:0])#步長(zhǎng)值為0時(shí)將會(huì)報(bào)錯(cuò)ValueError:slicestepcannotbezero3.切片操作提取可以省略格式中的起始元素索引和終止元素索引,但第1個(gè)冒號(hào)必須存在。若只省略起始元素索引,切片操作會(huì)默認(rèn)使用起始元素或終止元素的索引,即從列表開(kāi)頭或結(jié)尾開(kāi)始提取元素;若只省略終止元素索引,切片操作會(huì)從起始元素索引開(kāi)始,按提取方向搜索到列表一端的最后一個(gè)元素,這時(shí)切片操作會(huì)包含該端最后一個(gè)元素;若兩者同時(shí)省略,切片操作就會(huì)從某端開(kāi)始對(duì)全體元素進(jìn)行搜索提取。使用切片操作sequence_name[::-1]可以將列表反轉(zhuǎn)。其實(shí)這里就是從列表右端開(kāi)始,逐個(gè)提取元素,直至提取完所有元素。應(yīng)用示例如下。3.切片操作提取>>>#省略起始元素索引>>>print(mylist4[:-7:-2])#提取從結(jié)尾向左到倒數(shù)第7個(gè)元素間的元素,步長(zhǎng)值為2[100,80,60]>>>#省略終止元素索引>>>print(mylist4[6:])#提取從第7個(gè)元素到列表右端最后一個(gè)元素之間的所有元素[70,80,90,100]>>>#同時(shí)省略起始元素索引和終止元素索引>>>print(mylist4[::-2])#提取從結(jié)尾到左端第1個(gè)元素之間的元素,步長(zhǎng)值為2[100,80,60,40,20]>>>#提取從結(jié)尾到左端第1個(gè)元素之間的全體元素,步長(zhǎng)值為1,即將列表反轉(zhuǎn)>>>print(mylist4[::-1])[100,90,80,70,60,50,40,30,20,10]3.切片操作提取切片操作無(wú)須擔(dān)心傳入的索引超出列表索引范圍。若傳入的索引小于列表第1個(gè)元素的負(fù)索引,切片操作會(huì)將其當(dāng)作0;如果傳入的索引大于列表最后一個(gè)元素的正索引,切片操作會(huì)將其當(dāng)作1。當(dāng)切片操作從起始元素索引根據(jù)提取方向無(wú)法到達(dá)終止元素索引時(shí),Python將返回一個(gè)空列表。具體應(yīng)用示例如下。3.切片操作提取>>>#提取從第4個(gè)元素到列表右端最后一個(gè)元素之間的元素,步長(zhǎng)值為2>>>print(mylist4[3:100:2])[40,60,80,100]>>>#提取從倒數(shù)第5個(gè)元素到列表左端第1個(gè)元素之間的全體元素,步長(zhǎng)值為1>>>print(mylist4[-5:-20:-1])[60,50,40,30,20,10]>>>print(mylist4[6:2])#提取從第7個(gè)元素向右到第3個(gè)元素之間的所有元素[]1列表的基本操作目錄創(chuàng)建列表2列表常用方法和函數(shù)3【任務(wù)3-1】實(shí)現(xiàn)某超市營(yíng)業(yè)額數(shù)據(jù)的存儲(chǔ)、查詢與修改41.增添列表元素使用append()方法傳入需要增添到列表對(duì)象的一個(gè)元素,該元素會(huì)被追加到列表尾部,如下。注意,append()方法一次只能追加一個(gè)元素。實(shí)例如下:(1)append()方法>>>month=['January','February','March','April','May','June']>>>month.append('July')#使用append()方法向列表尾部追加元素>>>print(month)#查看列表內(nèi)容['January','February','March','April','May','June','July']>>>month=['January','February','March','April','May','June']>>>month.append('July')#使用append()方法向列表尾部追加元素>>>print(month)#查看列表內(nèi)容['January','February','March','April','May','June','July']1.增添列表元素使用extend()方法能夠?qū)⒘硪粋€(gè)列表增添到指定列表末尾,相當(dāng)于將兩個(gè)列表拼接。類(lèi)似于字符串拼接,兩個(gè)列表對(duì)象也可以通過(guò)加號(hào)進(jìn)行拼接,使用extend()方法的效果與使用自增運(yùn)算(+=)的相同,如下。(2)extend()方法>>>#創(chuàng)建一個(gè)列表對(duì)象month的副本,用于對(duì)比extend()方法與自增運(yùn)算的效果>>>month_copy=month.copy()>>>print(month_copy)['January','February','March','April','May','June','July']>>>others=['August','September','November','December']>>>month.extend(others)#使用extend()方法將兩個(gè)列表進(jìn)行拼接>>>print(month)['January','February','March','April','May','June','July','August','September','November','December']>>>month_copy+=others#對(duì)副本進(jìn)行自增運(yùn)算>>>print(month_copy)['January','February','March','April','May','June','July','August','September','November','December']1.增添列表元素1.增添列表元素

類(lèi)似于append()方法,使用insert()方法也能夠向列表中增添一個(gè)元素。不同的是,insert()方法可以指定增添位置,類(lèi)似于在列表某個(gè)位置插入一個(gè)元素。只要向insert()方法中傳入插入位置和要插入的元素,即可在列表的相應(yīng)位置增添指定的元素。若插入位置超出列表尾端,則元素會(huì)被置于列表最后。使用insert()方法插入元素示例如下通過(guò)加號(hào)進(jìn)行拼接,使用extend()方法的效果與使用自增運(yùn)算(+=)的相同,如下。(3)insert()方法>>>month.insert(9,'October')#在列表第10個(gè)位置上插入元素>>>print(month)['January','February','March','April','May','June','July','August','September','October','November','December']>>>month.insert(20,'None')#插入位置超出列表尾端>>>print(month)['January','February','March','April','May','June','July','August','September','October','November','December','None']1.增添列表元素2.刪除列表元素在Python中,使用del語(yǔ)句可以將列表元素刪除。實(shí)質(zhì)上,del語(yǔ)句是賦值語(yǔ)句(=)的逆過(guò)程。如果將賦值語(yǔ)句看作“向?qū)ο筚N變量名標(biāo)簽”,那么del語(yǔ)句就是“將對(duì)象上的標(biāo)簽撕下來(lái)”,即將一個(gè)對(duì)象與它的變量名分離。使用del語(yǔ)句可以將從列表中提取出的元素刪除,如下。(1)del語(yǔ)句>>>month_copy=month.copy()#創(chuàng)建一個(gè)列表對(duì)象month的副本>>>delmonth_copy[-1]#刪除副本中的最后一個(gè)元素>>>print(month_copy)['January','February','March','April','May','June','July','August','September','October','November','December']2.刪除列表元素利用元素位置可以對(duì)元素進(jìn)行刪除操作。將元素索引傳入pop()方法中,將會(huì)獲取對(duì)應(yīng)元素,并將其在列表中刪除。若不指定元素位置,pop()方法將默認(rèn)使用索引1。使用pop()方法刪除元素的示例如下。(2)pop()方法>>>month_copy=month.copy()#創(chuàng)建一個(gè)列表對(duì)象month的副本>>>print(month_copy.pop(3))#獲取并刪除第4個(gè)元素'April'>>>del_element=month_copy.pop()#將最后一個(gè)元素賦值給一個(gè)變量并在副本中將其刪除>>>print(del_element)#查看刪除元素'None'>>>print(month_copy)#查看副本['January','February','March','May','June','July','August','September','October','November','December']>>>month_copy=month.copy()#創(chuàng)建一個(gè)列表對(duì)象month的副本>>>print(month_copy.pop(3))#獲取并刪除第4個(gè)元素'April'>>>del_element=month_copy.pop()#將最后一個(gè)元素賦值給一個(gè)變量并在副本中將其刪除>>>print(del_element)#查看刪除元素'None'>>>print(month_copy)#查看副本['January','February','March','May','June','July','August','September','October','November','December']2.刪除列表元素2.刪除列表元素除了利用元素位置進(jìn)行元素刪除外,還可以對(duì)指定元素進(jìn)行刪除。將指定元素傳入remove()方法,則列表中第一次出現(xiàn)的該元素將會(huì)被刪除,如下。(3)remove()方法>>>month.remove('None')#刪除列表中的元素'None'>>>print(month)['January','February','March','April','May','June','July','August','September','October','November','December']由于列表是可變的,修改列表元素最簡(jiǎn)單的方法是提取相應(yīng)元素并進(jìn)行賦值操作,如下。3.修改列表元素>>>month[0]='Jan'#將第1個(gè)元素改為縮寫(xiě)形式>>>print(month)['Jan','February','March','April','May','June','July','August','September','October','November','December']對(duì)于可變數(shù)據(jù)類(lèi)型的數(shù)據(jù)結(jié)構(gòu),直接在對(duì)象上進(jìn)行元素的增添、刪除、修改、查詢等操作,處理結(jié)果將直接影響對(duì)象本身,如下。3.修改列表元素>>>a=[1,2,3,4]#變量a指向列表對(duì)象[1,2,3,4]>>>b=a#變量b也指向列表對(duì)象[1,2,3,4]>>>a.append(5)#列表尾端追加元素5>>>print(a)[1,2,3,4,5]>>>print(b)#通過(guò)變量b查看列表[1,2,3,4,5]如果不希望操作直接作用于列表對(duì)象本身,那么可以使用列表的copy()方法創(chuàng)建一個(gè)完全一樣的副本。這樣列表對(duì)象本身就不會(huì)發(fā)生變化。除了copy()方法外,使用切片操作和list函數(shù)也能達(dá)到同樣的效果,如下。3.修改列表元素>>>a=[10,20,30,40,50]>>>b=a.copy()#使用copy()方法創(chuàng)建副本>>>c=a[:]#使用切片操作創(chuàng)建副本>>>d=list(a)#使用list函數(shù)創(chuàng)建副本>>>print(id(a),id(b),id(c),id(d))#查看各變量對(duì)象的id2617832796104,2617832795848,2617832794568,2617832795592>>>b[2]='three'#修改副本第3個(gè)元素>>>print(b)[10,20,'three',40,50]>>>print(a)#原列表并沒(méi)有發(fā)生變化[10,20,30,40,50]>>>print(c)[10,20,30,40,50]>>>print(d)[10,20,30,40,50]3.修改列表元素利用列表方法index()可查詢指定元素在列表中第1次出現(xiàn)的位置索引。若列表不包含指定元素,則會(huì)出現(xiàn)錯(cuò)誤提示,可以使用Python中的in關(guān)鍵字判斷是否存在指定元素,具體格式為“元素in列表對(duì)象”。若元素至少在列表中出現(xiàn)過(guò)一次,則返回True,否則返回False。index()方法和in關(guān)鍵字的應(yīng)用示例如下。4.查詢列表元素>>>letter=['A','B','A','C','B','B','C','A']>>>print(letter.index('C'))#獲取元素'C'在列表中第1次出現(xiàn)的位置索引3>>>#使用in關(guān)鍵字判斷列表是否包含元素'A'>>>print('A'inletter)True其他比較常用的列表操作/運(yùn)算符:5.其他常用操作操作/運(yùn)算符說(shuō)

明count()方法記錄某個(gè)元素在列表中出現(xiàn)的次數(shù)sort()方法對(duì)列表中的元素進(jìn)行排序,默認(rèn)按升序排序,可以通過(guò)設(shè)置參數(shù)reverse=True進(jìn)行降序排序。結(jié)果會(huì)改變?cè)斜韮?nèi)容sorted函數(shù)與list.sort()方法的作用一樣,但不改變?cè)斜韮?nèi)容reverse()方法反轉(zhuǎn)列表中的各元素len函數(shù)獲取列表長(zhǎng)度,即列表中元素的個(gè)數(shù)+將兩個(gè)列表拼接為一個(gè)列表*重復(fù)拼接同一個(gè)列表多次>>>#使用count()方法進(jìn)行元素計(jì)數(shù)>>>letter=['B','A','C','D','A','C','D','A']>>>print(letter.count('A'))#獲取元素'A'在列表中出現(xiàn)的次數(shù)3>>>#使用sorted()函數(shù)和sort()方法對(duì)列表進(jìn)行排序>>>print(sorted(letter))#使用sorted函數(shù)對(duì)列表進(jìn)行排序,不改變?cè)斜韮?nèi)容['A','A','A','B','C','C','D','D']>>>print(letter)['B','A','C','D','A','C','D','A']>>>letter.sort()#使用sort()方法對(duì)列表進(jìn)行排序,改變?cè)斜韮?nèi)容>>>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論