




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4章典型數(shù)據(jù)結(jié)構(gòu)CONTENTS目錄4.1列表014.2元組024.3集合034.4字典044.1列表4.1.1創(chuàng)建列表創(chuàng)建列表的最簡單方法是將各個(gè)元素放在一對(duì)方括號(hào)內(nèi)并以逗號(hào)加以分隔,由此創(chuàng)建一個(gè)列表對(duì)象。若要引用該列表對(duì)象,則需要使用賦值運(yùn)算符將列表賦值給變量。創(chuàng)建列表示例list1=[]list2=[1,2,3]list3=["C","Java","Pyton","Go"]list4=list()list5=list([1,2,3])list6=list(["","Java","Pyton","Go"]list7=list(range(1,101))4.1.3列表的常用函數(shù)(1)1.適用于序列的內(nèi)置函數(shù)(1)all(seq)。如果序列seq中所有元素為True或序列自身為空,則該函數(shù)返回True,否則返回False。(2)any(seq)。如果序列seq中任一元素為True,則該函數(shù)返回True;如果序列seq中所有元素為False或序列自身為空,則該函數(shù)返回False。(3)len(seq)。該函數(shù)返回序列的長度,即序列中包含的元素個(gè)數(shù)。(4)max(seq)。該函數(shù)返回序列中的最大元素。(5)min(seq)。該函數(shù)返回序列中的最小元素。(6)sorted(iterable,key=None,reverse=False)。該函數(shù)對(duì)可迭代對(duì)象進(jìn)行排序操作并返回排序后的新列表,原始輸入不變;terable參數(shù)表示可迭代類型,key參數(shù)指定一個(gè)函數(shù),用于實(shí)現(xiàn)自定義排序,默認(rèn)為None;reverse參數(shù)指定排序規(guī)則,設(shè)置為True則按降序排序,默認(rèn)為False,表示按升序排序。(7)sum(iterable[,start])。該函數(shù)對(duì)序列進(jìn)行求和計(jì)算。4.1.2列表的基本操作(2)2.專有操作(1)元素賦值:通過索引修改列表中特定元素的值。(2)切片賦值:使用一個(gè)值列表來修改列表指定范圍的一組元素的值。(3)元素刪除:使用del語句從列表中刪除指定的元素。(4)列表解析:[表達(dá)式for迭代變量in可迭代對(duì)象][表達(dá)式for迭代變量in可迭代對(duì)象if條件表達(dá)式]4.1.3列表的常用函數(shù)(1)1.適用于序列的內(nèi)置函數(shù)(1)all(seq)。如果序列seq中所有元素為True或序列自身為空,則該函數(shù)返回True,否則返回False。(2)any(seq)。如果序列seq中任一元素為True,則該函數(shù)返回True;如果序列seq中所有元素為False或序列自身為空,則該函數(shù)返回False。(3)len(seq)。該函數(shù)返回序列的長度,即序列中包含的元素個(gè)數(shù)。(4)max(seq)。該函數(shù)返回序列中的最大元素。(5)min(seq)。該函數(shù)返回序列中的最小元素。(6)sorted(iterable,key=None,reverse=False)。該函數(shù)對(duì)可迭代對(duì)象進(jìn)行排序操作并返回排序后的新列表,原始輸入不變;terable參數(shù)表示可迭代類型,key參數(shù)指定一個(gè)函數(shù),用于實(shí)現(xiàn)自定義排序,默認(rèn)為None;reverse參數(shù)指定排序規(guī)則,設(shè)置為True則按降序排序,默認(rèn)為False,表示按升序排序。(7)sum(iterable[,start])。該函數(shù)對(duì)序列進(jìn)行求和計(jì)算。2.只適用于列表的方法(1)lst.append(x):在列表lst末尾添加元素x,等價(jià)于執(zhí)行復(fù)合賦值語句lst+=[x]。(2)lst.extend(L):在列表lst末尾添加另一個(gè)列表L,等價(jià)于執(zhí)行復(fù)合賦值語句lst+=L。(3)lst.insert(i,x):可以在列表lst的i位置插入元素。(4)lst.remove(x):從列表lst中刪除第一個(gè)值為x的元素。(5)lst.pop([i]):從列表lst中彈出索引為i的元素。(6)lst.count(x):返回元素x在列表lst中出現(xiàn)的次數(shù)。(7)lst.index(x):返回元素x在列表lst中第一次出現(xiàn)的索引值。(8)lst.sort(key=None,reverse=False):對(duì)列表lst進(jìn)行排序。(9)list.reverse():反轉(zhuǎn)列表list中所有元素的位置。4.1.4多維列表列表中的元素可以是任意數(shù)據(jù)類型的對(duì)象,可以是數(shù)值、字符串,也可以是列表。如果一個(gè)列表以列表作為其元素,則該列表稱為多維列表。實(shí)際應(yīng)用中,最常用的多維列表是二維列表。二維列表可以看成是由行和列組成的列表。二維列表中的每一行可以使用索引來訪問,稱為行索引。通過“列表名[行索引]”形式表示列表中的某一行,其值就是一個(gè)一維列表;每一行中的值可以通過另一個(gè)索引來訪問,稱為列索引。通過“列表名[行索引][列索引]”形式表示指定行中某一列的值,其值可以是數(shù)字或字符串等。4.2元組4.2.1元組的基本操作元組是放在圓括號(hào)內(nèi)的一些元素組成的,這些元素之間用逗號(hào)分隔。創(chuàng)建元組的方法十分簡單,只需要在圓括號(hào)內(nèi)添加一些元素,并使用逗號(hào)隔開即可。例如:tuple1=()tuple2=(1,2,3,4,5,6)tuple3=("mathematics","physics","chemistry")tuple4=("all",
)tuple5=tuple()tuple6=tuple(1,2,3)tuple7=tuple([1,2,3,4,5,6])tuple8=tuple("HelloPython")tuple9=("VB","Java","Python","Go",2018,
2019)tuple10=tup([i*iforiinrange(10)])4.2.2元組封裝與序列拆封1元組封裝元組封裝是指將以逗號(hào)分隔的多個(gè)值自動(dòng)封裝到一個(gè)元組中。例如:x="VB","Java","PHP","Python","Go"2.序列拆封序列拆封是元組封裝的逆運(yùn)算,可以用來將一個(gè)封裝起來的元組對(duì)象自動(dòng)拆分成基本個(gè)基本數(shù)據(jù)。例如:t=(1,2,3)x,y,z=t4.2.3元組與列表的比較1.元組與列表的區(qū)別(1)元組是不可變的序列類型。(2)元組是使用圓括號(hào)并以逗號(hào)分隔元素來定義的,列表則是使用方括號(hào)并以逗號(hào)分隔元素來定義的。(3)元組可以在字典中作為關(guān)鍵字來使用,列表則不能作為字典的關(guān)鍵字來使用。2.元組與列表的相互轉(zhuǎn)換列表類的構(gòu)造函數(shù)list()接收一個(gè)元組作為參數(shù)并返回一個(gè)包含相同元素的列表,通過調(diào)用這個(gè)構(gòu)造函數(shù)可以將元組轉(zhuǎn)換為列表。元組類的構(gòu)造函數(shù)tuple()接收一個(gè)列表作為參數(shù)并返回一個(gè)包含相同元素的元組,通過調(diào)用這個(gè)構(gòu)造函數(shù)可以將列表轉(zhuǎn)換為元組。4.3集合4.3.1創(chuàng)建集合集合分為可變集合和不可變集合,對(duì)于可變集合可以添加和刪除集合元素,但其中的元素本身卻是不可修改的,因此集合的元素只能是數(shù)值、字符串或元組??勺兗喜荒茏鳛槠渌系脑鼗?yàn)樽值涞年P(guān)鍵字使用,不可變集合則可以和為其他集合的元素和字典的關(guān)鍵字使用。兩種類型的集合需要使用不同的方法來創(chuàng)建。1.創(chuàng)建可變集合創(chuàng)建可變集合的最簡單方法是使用逗號(hào)分隔一組數(shù)據(jù)并放在一對(duì)花括號(hào)中。2.創(chuàng)建不可變集合不可變集合可以通過調(diào)用frozenset()函數(shù)來創(chuàng)建,調(diào)用格式如下:frozenset([iterable])4.3.2集合的基本操作1.傳統(tǒng)的集合運(yùn)算(1)計(jì)算求交集:使用運(yùn)算符“&”。(2)計(jì)算并集:使用運(yùn)算符“|”。(3)計(jì)算差集:使用運(yùn)算符“-”。(4)計(jì)算對(duì)稱差集:使用運(yùn)算符“^”。2.集合的比較(1)判斷相等:使用運(yùn)算符“==”。(2)判斷不相等。使用運(yùn)算符“!=”。(3)判斷真子集:使用運(yùn)算符“<”。(4)判斷子集:使用運(yùn)算符“<=”。(5)判斷真超集:使用運(yùn)算符“>”。(6)判斷超集:使用運(yùn)算符“>=”。3.集合的并入對(duì)于可變集合,可以使用運(yùn)算符“|=”將一個(gè)集合并入另一個(gè)集合中。4.集合的遍歷使用for循環(huán)可以遍歷集合中的所有元素。4.3.3集合的常用方法(1)1.適用于所有集合的方法(1)set1.issubset(set2):如果集合set1是集合set2的子集,則該方法返回True,否則返回False。(2)set1.issuperset(set2):如果集合set1是集合set2的超集,則該方法返回True,否則返回False。(3)set1.isdisjoint(set2):如果集合set1和集合set2沒有共同元素,則該方法返回True,否則返回False。(4)ersection(set2,...,setn):計(jì)算集合set1,set2,...,setn的交集。(5)set1.union(set2,...,setn):于計(jì)算集合set1,set2,...,setn的并集。(6)set1.difference(set2):計(jì)算集合set11與set2的差集。(7)set1.symmetric_difference(set2):計(jì)算集合set11與set2的對(duì)稱差集。(8)set1.copy():該方法用于復(fù)制集合set1。4.3.3集合的常用方法(2)2.僅適用于可變集合的方法(1)set1.add(x):在集合set1中添加元素x。(2)set1.update(set2,set3,...,setn):該方法使用集合set2,set3,...,setn拆分成單個(gè)數(shù)據(jù)項(xiàng)并添加到集合set1中。(3)ersection_update(set2,set3,...,setn):求出集合set1,set2,set3,...,setn集合的交集并將結(jié)果賦值給set1。(4)set1.difference_update(set2,set3,...,setn):求出屬于集合set1但不屬于集合set2,set3,...,setn的元素并將賦值給set1。(5)set1.symmetric_difference_update(set2):求出集合set1和set2的對(duì)稱差集并將結(jié)果賦值給set1。(6)set1.remove(x):從集合set1中刪除元素x。(7)set1.discard(x):從集合set1中刪除元素x。(8)set1.pop():該方法從集合set1中彈出一個(gè)元素。(9)set1.clear():刪除集合set1中的所有元素。4.3.4集合與列表的比較(1)集合是用花括號(hào)或set()函數(shù)定義的,列表則是用方括號(hào)或list()函數(shù)定義的。(2)集合中不能存儲(chǔ)重復(fù)的元素,列表則允許存儲(chǔ)重復(fù)的元素。(3)集合中的元素是無序的,因此不能通過索引或切片來獲取元素,列表中的元素則是有序的,因此可以通過索引或切片來獲取元素。(4)對(duì)于集合可以判斷集合關(guān)系,也可以進(jìn)行各種集合運(yùn)算,這些都是集合所特有的。根據(jù)需要,也可以在集合和列表之間進(jìn)行相互轉(zhuǎn)換。如果將一個(gè)集合作為參數(shù)傳入list()函數(shù),則可以返回一個(gè)列表對(duì)象。4.4字典4.4.1創(chuàng)建字典字典就是用花括號(hào)括起來的一組“關(guān)鍵字:值”對(duì),每個(gè)“關(guān)鍵字:值”對(duì)就是字典中的一個(gè)元素或條目。創(chuàng)建字典的一般語法格式如下:字典名={關(guān)鍵字1:值1,關(guān)鍵字2:值2,...,關(guān)鍵字n:值n}其中關(guān)鍵字與值之間用半角冒號(hào)“:”來分隔,各個(gè)元素之間用半角逗號(hào)“;”來分隔;關(guān)鍵字是不可變類型,例如整數(shù)、字符串或元組等,關(guān)鍵字必須是唯一的;值可以是任意數(shù)據(jù)類型,而且不必是唯一的。如果在花括號(hào)內(nèi)未提供任何元素,則生成一個(gè)空字典。4.4.2字典的基本操作1.訪問字典元素在字典中關(guān)鍵字的作用相當(dāng)于索引,可以根據(jù)索引來訪問字典中的元素:字典名[關(guān)鍵字]2.添加和更新字典元素添加和更新字典元素可以通過賦值語句來實(shí)現(xiàn):字典名[關(guān)鍵字]=值如果指定的關(guān)鍵字目前未包含在字典中,則使用在語句中指定的關(guān)鍵字和值在字典中增加一個(gè)新的元素;如果指定的關(guān)鍵字已經(jīng)存在于字典中,則將該關(guān)鍵字對(duì)應(yīng)的值更新為新值。3.刪除字典元素和字典在Python中,可以使用del語句刪除一個(gè)變量,以解除該變量對(duì)數(shù)據(jù)對(duì)象的引用。若要從字典中刪除指定關(guān)鍵字所對(duì)應(yīng)的元素或刪除整個(gè)字典,也可以使用del語句來實(shí)現(xiàn)。4.檢測(cè)關(guān)鍵字是否存在于字典中字典是由一些關(guān)鍵字-值對(duì)組成的,每個(gè)關(guān)鍵字-值就是字典中的一個(gè)元素。對(duì)字典元素操作之前,可以使用in運(yùn)算符檢測(cè)該關(guān)鍵字是否存在于字典中。5.獲取關(guān)鍵字列表將一個(gè)字典作為參數(shù)傳入list()函數(shù)可以獲取該字典中所有關(guān)鍵字組成的列表。6.求字典長度使用內(nèi)置函數(shù)len()可以獲取字典的長度,即字典中包含的元素?cái)?shù)目。4.4.3字典的常用方法(1)dic.fromkeys(序列,[值]):使用
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初三周記范文集合八篇
- 2025年肥城事業(yè)單位真題
- 2025黑龍江鶴崗市工農(nóng)區(qū)酒行招聘考前自測(cè)高頻考點(diǎn)模擬試題附答案詳解(典型題)
- 銀行申請(qǐng)借款擔(dān)保合同5篇
- 2025呼倫貝爾莫旗消防救援大隊(duì)招聘消防文員模擬試卷及答案詳解(各地真題)
- 2025年永濟(jì)市市級(jí)機(jī)關(guān)公開遴選考試真題
- 2025年中石化:石油腦項(xiàng)目建議書
- 2025江蘇徐州選聘徐州泉山經(jīng)濟(jì)開發(fā)區(qū)投資發(fā)展有限公司總經(jīng)理(四)考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(新)
- 2025北京石油學(xué)院附屬實(shí)驗(yàn)小學(xué)招聘考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(各地真題)
- 2025年4月浙江杭州高新區(qū)(濱江)教育系統(tǒng)直接考核招聘編外人員模擬試卷帶答案詳解
- 2024-2025學(xué)年浙江省S9聯(lián)盟高一下學(xué)期4月期中考試英語試題(解析版)
- 制造業(yè):2025年制造業(yè)數(shù)字化設(shè)計(jì)與制造技術(shù)發(fā)展報(bào)告
- 物業(yè)日常巡檢管理制度
- 2025年人教版初中物理實(shí)驗(yàn)室教材使用計(jì)劃
- DB 32-T 3701-2019 江蘇省城市自來水廠關(guān)鍵水質(zhì)指標(biāo)控制標(biāo)準(zhǔn)
- GB/T 17642-2025土工合成材料非織造布復(fù)合土工膜
- 《醫(yī)用細(xì)胞生物學(xué)》課件:線粒體的功能與疾病
- 金融科技監(jiān)管法律法規(guī)-全面剖析
- 道路運(yùn)輸崗位管理制度
- 2025監(jiān)理工程師教材水利
- 江蘇高中英語牛津譯林版新教材必修一詞匯(默寫版)
評(píng)論
0/150
提交評(píng)論