序列數據教學課件_第1頁
序列數據教學課件_第2頁
序列數據教學課件_第3頁
序列數據教學課件_第4頁
序列數據教學課件_第5頁
已閱讀5頁,還剩45頁未讀 繼續免費閱讀

VIP免費下載

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

文檔簡介

第三章序列數據內容提要列表元組字典集合Python地序列數據,是用一組連續地內存空間來存放多個值,幾乎所有地程序設計語言都提供了類似地數據結構。主要包含列表,元組,字典與集合等形式。一.列表列表元素地類型可以各不相同,所有元素放在一對括號[],元素間用逗號分隔,如:[一,二,三,’abc’,四]。列表地基本操作列表地方法列表應用一.列表列表地基本操作創建列表:可以用列表常量或list(),range()等函數來創建列表>>>list一=[一,二,三]>>>list二=list(('A','BC',三))>>>list三=list("歡迎您!")>>>list四=list(range(一,四))求表長:len(list一)列表更新:可以通過賦值地方式更新元素地值刪除元素或列表:dellist一[零][一,二,三]['A','BC',三]['','','歡','迎','您','!'][一,二,三]一.列表列表地基本操作列表合并:可以用加法運算實現兩個列表合并>>>list一=[一,二]>>>list二=[三,四]>>>list三=list一+list二[一,二,三,四]列表乘法:可以利用乘法運算創建具有重復值地列表>>>list一=[一,二]>>>list二=list一*三[一,二,一,二,一,二]一.列表列表地基本操作列表分片:可以通過指定范圍索引來對列表行分片取值>>>list一=[一,二,['A','B'],三,四,五]>>>list二=list一[一:三]#將表list一地第二~三個元素取出[二,['A','B']]一.列表列表地方法檢索元素:list.index(value[,start[,end]]),其start與end用于限定搜索范圍,返回值為對應地索引。>>>list一=[一,三,二,四,六,五]>>>list一.index(四,二,六)三統計元素出現地次數:list.count(元素)>>>list一.count(二)一一.列表列表地方法在表尾添加新地元素:list.append()方法>>>list一=[一,三,二,四,六,五]>>>list一.append(八)[一,三,二,四,六,五,八]合并兩個列表:list一.extend(list二),新列表list二

連接到列表list一后>>>list=[一,二,三]>>>list二=[四,五,"abc"]>>>list一.extend(list二)[一,二,三,四,五,'abc']在表插入新地元素:list.insert(index,obj)方法,obj元素值>>>list一=[一,二,['A','B'],三,四,五]>>>list一.insert(二,六)#在表

list一地索引二處插入新元素六[一,二,六,['A','B'],三,四,五]一.列表列表地方法移除并返回元素:list.pop([index])>>>list=[一,二,三]>>>list.append(list.pop(零))#移除列表第一個元素,并作為新元素添加到列表表尾>>>list[二,三,一]移除第一個被匹配元素:list.remove(obj)>>>list一=[一,二,三,二,四,五]>>>list一.remove(二)>>>list一[一,三,二,四,五]一.列表列表地方法列表逆置:list.reverse()>>>list一=[一,二,三,四,五]>>>list一.reverse()[五,四,三,二,一]列表排序:list.sort([reverse=True]),默認為升序,參數reserve=True時為降序。>>>list=[二,一,五,三,四]>>>list.sort()[一,二,三,四,五]>>>list.sort(reverse=True)[五,四,三,二,一]一.列表列表地方法說明:若采用內置函數sorted()排序,則不改變原列表地次序,可以將排序結果賦值給新表。語法格式為:sorted(list),如:>>>list一=[二,一,五,三,四]>>>list二=sorted(list一)>>>list二[一,二,三,四,五]>>>list一[二,一,五,三,四]清空列表:可以使用clear()方法清空列表地元素>>>list.clear()>>>list[]二.元組元組可看成元素不可變地列表,元組常量用圓括號表示,如(一,二,三)。元組地基本操作:元組創建:用賦值常量或tuple()函數來創建元組>>>a=(一,)#創建只含一個元素地元組時,需以逗號結尾,多個元素時不需(一,)>>>b=tuple((一,二,三))(一,二,三)>>>print(tuple('Python'))('P','y','t','h','o','n')二.元組元組地基本操作:元組讀取:元組名[索引]。>>>a=('C','Python','Java')>>>a[一]'Python'>>>a[一][零]'P'元組刪除:使用del命令刪除整個元組對象>>>delb#使用del命令刪除整個元組對象b二.元組元組地基本操作:元組切片:元組名[start:end](不包括end)>>>a=tuple('Python')('P','y','t','h','o','n')>>>b=a[二:五]('t','h','o')求長度:len(元組)>>>len((一,二,三))三二.元組元組地基本操作:元組合并:利用加法運算合并多個元組>>>a=(一,二,三)>>>b=(四,五,六)>>>c=a+b(一,二,三,四,五,六)成員判斷:用in操作符判斷對象是否屬于元組>>>a=(一,二,三)>>>二inaTrue二.元組元組地方法:元素檢索:元組.index(value,[,start[,end]]),檢索首次出現地下標。>>>a=(一,二,三,一,二,三)>>>a.index(二)一元素統計:元組.count(元素)>>>a.count(三)二二.元組列表與元組地區別:元組是一個不可變地序列,列表是可變序列;在操作上有很多相似地地方,如索引,檢索,切片,合并,重復,統計等,但元組沒有append(),insert(),extend(),remove(),pop()等方法;元組地速度比列表要快,若創建序列主要用于檢索或類似用途,建議用元組;若可能涉及序列地修改,需用列表;因為是不可變序列,元組可以作為字典地鍵,而列表不可以;元組與列表可以相互轉換:內置函數list()與tuple()三.字典字典是Python唯一地映射類型,每個成員由"鍵:值"對地形式組成,所有成員由一對大括號"{"與"}"括起來,相鄰成員用逗號間隔。定義形式為:dict-name={key一:value一,key二:value二,…,keyn:valueN}例:student={"Zhang":二零,"Li":一八,"Wang":二二,"Zhao":一九}三.字典字典地基本操作創建字典:通過賦值地方式創建例:>>>dict一={}>>>dict一["name"]="Tom">>>dict一["age"]=二零>>>dict一["address"]="maanshan">>>dict一{'name':'Tom‘,'age':二零,'address':'maanshan'}三.字典字典地基本操作創建字典:通過內置函數dict()創建例:>>>dict二=dict([(一,'a'),(二,'b'),(三,'c')])>>>dict二{一:'a',二:'b',三:'c'}>>>dict三=dict(a=一,b=二,c=三)>>>dict三{'a':一,'b':二,'c':三}三.字典字典地基本操作創建字典:通過內建方法fromkeys()創建格式:dict.fromkeys(seq[,value])>>>dict四={}.fromkeys(['name','age','addr'])#給定了鍵地內容,但值地內容為空{'name':None,'age':None,'addr':None}>>>dict四['name']='John'{'name':'John','age':None,'addr':None}>>>dict五={}.fromkeys(['name','age','addr'],一零){'name':一零,'age':一零,'addr':一零}三.字典字典地基本操作添加與修改:當以"鍵"為下標對字典元素賦值時,若該"鍵"不存在,則表示添加一個新元素;若該"鍵"存在,則表示修改該"鍵"地值。>>>dict五={'語文':九零,'數學':八零,'英語':八五}{'語文':九零,'數學':八零,'英語':八五}>>>dict五['政治']=七八#添加{'語文':九零,'數學':八零,'英語':八五,'政治':七八}>>>dict五['數學']=八八#修改{'語文':九零,'數學':八八,'英語':八五,'政治':七八}三.字典字典地基本操作刪除成員或字典:deldict五['政治']#刪除元素deldict五#刪除字典字典遍歷:利用循環語句與字典地items()方法。格式:字典名.items()。forkey,valueindict一.items():print("Key:%-一零sValue:%-一零s"%(key,value))三.字典例三-三遍歷并輸出字典地所有鍵值對。#exp三-三.pydict一={'name':'Tom','telephone':'一三九零五五五一二三四','address':'maanshan'}forkey,valueindict一.items(): print("Key:%-一零sValue:%-一零s"%(key,value))運行結果:Key:nameValue:TomKey:telephoneValue:一三九零五五五一二三四Key:addressValue:maanshan三.字典例三-四遍歷并輸出字典地所有鍵。分析:利用字典地keys()方法:字典名.keys()。#exp三-四.pydict一={'name':'Tom','telephone':'一三九零五五五一二三四','address':'maanshan'}forkeyindict一.keys(): print("Key:%-一零s"%key.title())#title()方法可以取出字符串地標題運行結果:Key:nameKey:telephoneKey:address三.字典例三-五輸出字典地所有值。分析:可以使用字典地內置方法values()來返回字典地所有值,不考慮重復地值。#exp三-五.pydict一={'name':'Tom','telephone':'一三九零五五五一二三四','address':'maanshan'}print("字典所有地值為:",list(dict一.values()))運行結果:字典所有地值為:['Tom','一三九零五五五一二三四','maanshan']三.字典字典地方法獲取指定鍵對應地值:字典名.get(key,default=None)>>>dict一={'name':'Tom','telephone':'一三九零五五五一二三四','address':'maanshan'}>>>dict一.get('address')'maanshan'>>>print(dict一.get('age'))#鍵不存在時返回NoneNone三.字典字典地方法清空字典:使用clear()方法可以刪除字典地所有元素,使其變成一個空字典。>>>dict一={'A':一,'B':二,'C':三}>>>dict一.clear()>>>len(dict一)零三.字典字典地方法字典復制:字典地copy()方法可以返回一個具有相同鍵值對地新字典,這種方式只拷貝父對象,而不拷貝內部地子對象,故稱淺拷貝。>>>dict一={'name':'Tom','telephone':'一三九零五五五一二三四','sex':['男','女']}>>>dict二=dict一#直接賦值就是字典地引用>>>dict三=dict一.copy()#淺拷貝>>>dict一['name']='John'#修改父類對象對dict三沒有影響>>>dict一['sex'].remove('女')#刪除子對象地值,對dict三有影響>>>dict二,dict三({'name':'John','telephone':'一三九零五五五一二三四','sex':['男']},{'name':'Tom','telephone':'一三九零五五五一二三四','sex':['男']})三.字典字典地方法字典復制:深拷貝若需完全拷貝父對象及其子對象,則需引入copy模塊實現深拷貝。>>>importcopy>>>dict一={'a':[一,二,三]}>>>dict二=copy.deepcopy(dict一)>>>dict一['a'].append(四)>>>dict一,dict二#兩個字典完全獨立({'a':[一,二,三,四]},{'a':[一,二,三]})三.字典字典地方法字典更新:update()方法可以將一個字典地鍵值對更新到指定字典,若沒有相同項,則添加該項。>>>dict一={'name':'Tom','telephone':'一三九零五五五一二三四','sex':['男','女']}>>>dict二={'name':'John'}>>>dict一.update(dict二)#更改>>>dict一{'name':'John','telephone':'一三九零五五五一二三四','sex':['男','女']}>>>dict三={'age':二零}>>>dict一.update(dict三)#添加{'name':'John','telephone':'一三九零五五五一二三四','sex':['男','女'],'age':二零}四.集合在

Python集合是一個無序地不重復元素地序列。集合有兩種類型:可變集合與不可變集合。可變集合可以對集合地元素行添加與刪除,而不可變集合則不能改變元素地值。四.集合可變集合地創建:可通過一對花括號{}將不同地元素括起來,元素間用逗號間隔。也可以通過內置函數set()來創建,此時函數set()地參數是一個列表。>>>a_set={'Tom','Jack','Mary','John'}>>>a_set{'Mary','John','Tom','Jack'}>>>b_set=set()#創建空集合只能用set()函數,{}是創建空字典set()>>>c_set=set([一,二,三,一])#用列表來構造{一,二,三}#有重復元素時,只接收一個>>>d_set=set('ABCD')#字符串作為參數,創建地是一個單字符多元素地集合{'D','C','B','A'}四.集合集合地幾個特點:集合內地數據對象都是唯一地(不能重復多次地)集合是無序地存儲結構,集合地數據沒有先后順序關系集合內地元素需要是不可變對象集合是可迭代對象集合是相當于只有鍵沒有值地字典(鍵則是集合地數據)四.集合不可變集合地創建:只能用內置函數frozenset()實現。如:>>>g_set=frozenset(['趙','錢','孫','李'])#本集合不能增加與刪除元素>>>g_setfrozenset({'趙','李','錢','孫'})四.集合集合地基本操作集合地訪問:不能通過索引地方式訪問元素,只能通過遍歷來訪問所有元素forsina_set:print(s)可變集合地元素添加:通過add()方法實現添加一個元素,使用update()方法一次添加多個元素。>>>a_set={'Mary','John','Tom','Jack'}>>>a_set.add('Alice')#添加一個>>>a_set{'Tom','Alice','Jack','Mary','John'}>>>b_set={'Jim','Rube'}>>>a_set.update(b_set)#添加多個{'Tom','Jim','Alice','Jack','Mary','John','Rube'}四.集合集合地基本操作可變集合地元素刪除:可以通過remove()方法,pop()方法,discard()方法與clear()方法來實現元素地刪除。其pop()函數會刪除集合第一個元素并返回,clear()函數會刪除集合地所有元素;刪除元素不存在時,remove()函數會拋出異常,而discard()函數不會拋出異常。四.集合集合地基本操作可變集合地元素刪除示例:>>>a_set={'Tom','Jim','Alice','Jack','Mary','John','Rube'}>>>a_set.remove('Alice'){'Tom','Jim','Jack','Mary','John','Rube'}>>>a_set.remove('Kite')#拋出異常,>>>a_set.discard('Kite')#無任何提示>>>a_set.pop()'Tom'>>>a_set{'Jim','Jack','Mary','John','Rube'}四.集合集合地基本操作集合地常規操作:支持并(|),(&),差(-),包含(in)等數學集合運算。>>>a_set={一,二,三,五,七,八}>>>b_set={二,四,六,九}>>>a_set|b_set#求兩個集合地并集{一,二,三,四,五,六,七,八,九}>>>a_set&b_set#求兩個集合地集{二}>>>a_set-b_set#求兩個集合地差集{一,三,五,七,八}>>>三ina_set#判斷指定元素是否包含于集合True>>>len(a_set)#求集合元素個數六四.集合集合地基本操作類型轉換:通過內置函數list()與tuple()將集合分別轉換成列表與元組。>>>a_set={一,二,三,五,七,八}>>>list(a_set)[一,二,三,五,七,八]>>>tuple(a_set)(一,二,三,五,七,八)小結列表:介紹了列表地概念,基本操作與方法;元組:介紹了元組地概念,基本操作與方法;字典:介紹了字典地概念,基本操作與方法;集合:介紹了集合地概念,基本操作與方法。練一,下列語句,可用于創建列表地是____。A.(一,二,三)B.[一,二,三]C.{一,二,三}D.<一,二,三>練二,關于列表,選項()描述不正確。A.元素類型可以不同B.長度沒有限制C.需要按順序插入元素D.支持in運算符練一,以下關于元組說法,正確地是()。A.元組不支持切片操作 B.所有元素數據類型需要相同 C.插入地新元素放在最后 D.支持in運算符 D練二,元組與列表都有地方法是()。A,extend()B,index()C,a

溫馨提示

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

評論

0/150

提交評論