單元8 Python結(jié)構(gòu)數(shù)據(jù)類型_第1頁
單元8 Python結(jié)構(gòu)數(shù)據(jù)類型_第2頁
單元8 Python結(jié)構(gòu)數(shù)據(jù)類型_第3頁
單元8 Python結(jié)構(gòu)數(shù)據(jù)類型_第4頁
單元8 Python結(jié)構(gòu)數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單元8Python結(jié)構(gòu)數(shù)據(jù)類型簡(jiǎn)單數(shù)據(jù)類型只能表示不能拆分的單一數(shù)據(jù),如一個(gè)人的年齡。對(duì)于全班所有人的成績(jī)這類復(fù)雜數(shù)據(jù),就需要通過結(jié)構(gòu)數(shù)據(jù)類型進(jìn)行表示。8.1集合用于保存不重復(fù)的元素8.1.1集合的創(chuàng)建在Python語言中,創(chuàng)建集合有兩種方法。(1)使用大括號(hào)({})創(chuàng)建<Name>={元素1,元素2,元素3,....,元素n}(2)使用set()函數(shù)創(chuàng)建可以創(chuàng)建空集合也可以將列表、元組等其他可迭代的對(duì)象轉(zhuǎn)換為集合8.1.2集合的添加與刪除集合是可變序列,可以向集合中添加元素,也可以刪除元素。1.添加元素add()方法Set.add(x)2.刪除元素pop()刪除集合中第一個(gè)元素remove(x)刪除集合中元素x8.2元組元組是Python中常用的結(jié)構(gòu)數(shù)據(jù)類型。元組由不同的元素組成,每個(gè)元素可以存儲(chǔ)不同類型的數(shù)據(jù),如字符串、數(shù)字甚至元組。元組是“寫保護(hù)”的,即元組創(chuàng)建后不能再做任何修改操作,元組通常代表一行數(shù)據(jù),而元組中的元素代表不同的數(shù)據(jù)項(xiàng)。8.2.1元組的創(chuàng)建在Python語言中,創(chuàng)建元組有兩種方法。(1)使用圓括號(hào)(())創(chuàng)建<Name>=(元素1,元素2,元素3,....,元素n)(2)使用tuple()函數(shù)創(chuàng)建可以將字符串、列表、range對(duì)象等其他可迭代的對(duì)象轉(zhuǎn)換為元組8.2.2元組的訪問元組中元素的值通過索引和切片操作進(jìn)行訪問。1.索引訪問索引使用[]進(jìn)行表示,中間是索引序號(hào)。tuple[n](1)正向索引(2)反向索引從元組的最左測(cè)(第一個(gè)元素)開始,索引序號(hào)從0開始遞增,向右依次遞增,遞增到元組的長(zhǎng)度-1從元組的最右測(cè)(最后一個(gè)元素)開始,索引序號(hào)從-1開始遞減,向左依次遞減,遞減到元組長(zhǎng)度的相反值2.切片訪問訪問多個(gè)連續(xù)的元素使用[]tuple[N:M]8.2.3元組的遍歷通過for循環(huán)語句依次訪問元組中各元素的值。8.2.4復(fù)合元祖由元組構(gòu)成的元組,這樣的元組被稱為多元元組,也成為復(fù)合元祖。使用兩個(gè)[]進(jìn)行訪問tuple[m][n]8.2.5元組的“打包”和“解包”打包創(chuàng)建元組的過程解包將包元組中的各個(gè)元素分別賦值給多個(gè)變量8.3列表列表是Python中非常重要的數(shù)據(jù)類型,通常作為函數(shù)的返回類型。列表和元組相似,也是由一組元素組成,列表可以實(shí)現(xiàn)添加、刪除和查找操作,元素的值可以被修改。8.3.1列表的創(chuàng)建在Python語言中,創(chuàng)建集合有兩種方法。(1)使用中括號(hào)([])創(chuàng)建<Name>=[元素1,元素2,元素3,....,元素n](2)使用list()函數(shù)創(chuàng)建可以將字符串、元組、range對(duì)象等其他可迭代的對(duì)象轉(zhuǎn)換為列表8.3.2列表的使用列表的使用與元組十分相似,同樣支持索引和、切片和遍歷。8.3.3列表的添加與刪除列表的添加與刪除是指可以向列表中添加、刪除元素。1.添加元素append(x)向列表尾部添加元素xextend(L)向列表中追加另一個(gè)列表Linsert(index,x)列表中指定位置(index)插入元素(x)2.刪除元素remove(x)刪除列表中的元素x(有多個(gè)則只刪除第一個(gè)),x不存在則拋出異常pop(q)刪除列表中索引序號(hào)為q的元素8.3.4列表的查找index(x)返回元素x在列表中的序號(hào),x不存在則拋出異常in檢查某個(gè)元素是否在列表中。如果在,返回True;如果不在,返回Falsenotin檢查某個(gè)元素是否在列表中。如果不在,返回True;如果在,返回False8.3.5列表的排序reverse()把列表中的元素順序反過來sort()按照指定排序規(guī)則進(jìn)行排序,會(huì)改變?cè)瓉淼牧斜韘orted()按照指定排序規(guī)則進(jìn)行排序,不會(huì)改變?cè)瓉淼牧斜?.3.6列表的連接列表的連接可以將兩個(gè)或多個(gè)列表,使用算術(shù)運(yùn)算符加號(hào)(+)進(jìn)行連接,組成一個(gè)新的更長(zhǎng)的列表。如果列表中有相同的元素,不會(huì)去除重復(fù)的元素。L1+L2+...+Ln8.3.7列表實(shí)現(xiàn)堆棧和隊(duì)列堆棧和隊(duì)列是數(shù)據(jù)結(jié)構(gòu)中常用的數(shù)據(jù)結(jié)構(gòu),列表可以用來實(shí)現(xiàn)堆棧和隊(duì)列。堆?!昂筮M(jìn)先出”的順序隊(duì)列“先進(jìn)先出”的順序append()插入元素,pop()彈出元素8.4字典在日常開發(fā)中,有些數(shù)據(jù)并不是單獨(dú)的,還包含對(duì)應(yīng)的信息,如姓名:xxx、年齡:xx等。這些數(shù)據(jù)信息包括數(shù)據(jù)名和數(shù)據(jù)值兩部分。這種對(duì)應(yīng)關(guān)系被稱為映射。數(shù)據(jù)名稱為鍵,整個(gè)數(shù)據(jù)被稱為“鍵-值”(key-value)對(duì)。Python提供了字典數(shù)據(jù)類型,實(shí)現(xiàn)鍵值之間的映射。8.4.1字典的創(chuàng)建在Python語言中,創(chuàng)建字典有兩種方法。(1)使用大括號(hào)({})創(chuàng)建<Name>={<鍵1>:<值1>,<鍵2>:<值2>,...,<鍵n>:<值n>}(2)使用dict()函數(shù)創(chuàng)建<Name>=dict(key1=value1,key2=value2,......,keyn=valuen)8.4.2字典的訪問get(key)獲取key對(duì)應(yīng)的值。如果key不存在,則不會(huì)返回任何信息setdefault(key,value)獲取key對(duì)應(yīng)的值。如果key不存在,則為字典添加key,其對(duì)應(yīng)的值為value,如果沒有指定value,默認(rèn)值為Nonekeys()獲取所有鍵values()獲取所有鍵對(duì)應(yīng)的值8.4.3字典的遍歷使用items()方法可以將字典中的每一個(gè)“鍵值對(duì)”作為元素,組成一個(gè)元組8.4.4字典的添加、刪除、刪除字典的添加與刪除是指可以向字典中添加或刪除“鍵值對(duì)”,還可以修改“鍵值對(duì)”的值。1.添加“鍵值對(duì)”向字典中添加新的“鍵值對(duì)”dict[key]=value2.刪除“鍵值對(duì)”pop(key)刪除字典中鍵為k的“鍵值對(duì)”popitem()刪除字典最后一個(gè)“鍵值對(duì)”,以元組形式返回clear()清空字典,刪除所有的“鍵值對(duì)”3.修改“鍵值對(duì)”的值修改元素是通過賦值的方式進(jìn)行修改,重新賦一個(gè)新的值。dict[key]="value"8.4.5字典的合并字典的合并是指將一個(gè)字典中的鍵值對(duì)添加到另一個(gè)字典中。update()方法dict1.update(dict2)8.4.6字典的排序前面已經(jīng)提到,列表的排序可以使用sorted()實(shí)現(xiàn),字典的排序同樣可以使用該函數(shù)。8.4.7字典的復(fù)制直接將字典賦值給一個(gè)變量通過copy()方法對(duì)字典進(jìn)行淺復(fù)制區(qū)別原字典中的元素發(fā)生變化時(shí),對(duì)兩種復(fù)制的影響不同8.5迭代器Python中迭代器的使用是最為廣泛的。前面的代碼中,凡是使用for語句,其本質(zhì)上都是迭代器的應(yīng)用。8.5.1迭代器概述迭代器從表面上看是一個(gè)數(shù)據(jù)流對(duì)象或容器,當(dāng)使用其中的數(shù)據(jù)時(shí),每次從數(shù)據(jù)流中取一個(gè)數(shù)據(jù),直到數(shù)據(jù)被取完,而且數(shù)據(jù)不會(huì)被重復(fù)使用。從代碼的角度看,迭代器是實(shí)現(xiàn)了迭代方法的對(duì)象或類。8.5.2創(chuàng)建一個(gè)迭代器一個(gè)類中只要含有__iter__方法和__next__方法,就將其稱為迭代器。8.5.3內(nèi)置迭代器工具Python語言中,已經(jīng)內(nèi)建了一個(gè)用于產(chǎn)生迭代器的函數(shù)iter()。iter(iterable)iter(callable,sentinel)8.6生成器可以生成一個(gè)值的序列用于迭代不是一次生成的使用一個(gè),再生成一個(gè)生成器就是一種自定義的迭代器生成器函數(shù)用關(guān)鍵字yield來返回值的函數(shù)8.6.1創(chuàng)建一個(gè)生成器定義一個(gè)包含yield的函數(shù)。生成器用于生成一個(gè)值的序列,以便在迭代中使用。8.6.2深入生成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論