Python編程基礎(第3版)(微課版)課件 3.2 創建列表并進行增、刪、改、查等操作_第1頁
Python編程基礎(第3版)(微課版)課件 3.2 創建列表并進行增、刪、改、查等操作_第2頁
Python編程基礎(第3版)(微課版)課件 3.2 創建列表并進行增、刪、改、查等操作_第3頁
Python編程基礎(第3版)(微課版)課件 3.2 創建列表并進行增、刪、改、查等操作_第4頁
Python編程基礎(第3版)(微課版)課件 3.2 創建列表并進行增、刪、改、查等操作_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

明count()方法記錄某個元素在列表中出現的次數sort()方法對列表中的元素進行排序,默認按升序排序,可以通過設置參數reverse=True進行降序排序。結果會改變原列表內容sorted函數與list.sort()方法的作用一樣,但不改變原列表內容reverse()方法反轉列表中的各元素len函數獲取列表長度,即列表中元素的個數+將兩個列表拼接為一個列表*重復拼接同一個列表多次>>>#使用count()方法進行元素計數>>>letter=['B','A','C','D','A','C','D','A']>>>print(letter.count('A'))#獲取元素'A'在列表中出現的次數3>>>#使用sorted()函數和sort()方法對列表進行排序>>>print(sorted(letter))#使用sorted函數對列表進行排序,不改變原列表內容['A','A','A','B','C','C','D','D']>>>print(letter)['B','A','C','D','A','C','D','A']>>>letter.sort()#使用sort()方法對列表進行排序,改變原列表內容>>>

溫馨提示

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

評論

0/150

提交評論