




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章
組合數(shù)據(jù)類型在此輸入副標(biāo)題·
認(rèn)識(shí)組合數(shù)據(jù)類型·列表·元組·集合·字典·組合數(shù)據(jù)類型與運(yùn)算符了解掌握掌握了解
了解組合數(shù)據(jù)類型的分類12掌握序列類型的特點(diǎn),熟練操作列表和元組了解集合類型特點(diǎn),熟悉集合基本操作34掌握映射類型特點(diǎn),
熟練操作字典學(xué)習(xí)目標(biāo)目錄CONTENTS
實(shí)訓(xùn)案例5.15.25.35.45.5認(rèn)識(shí)組合數(shù)據(jù)類型
列
表
元
組集
合
字
典5.6組合數(shù)據(jù)類型與運(yùn)符
第一部分PART015.1認(rèn)識(shí)組合數(shù)據(jù)類型思考:什么是組合數(shù)據(jù)類型?
5.1認(rèn)識(shí)組合數(shù)據(jù)類型序列類型集合類型映射類型組合數(shù)據(jù)類型可將多個(gè)相同類型或不同類型的數(shù)據(jù)組織為一個(gè)整體,根據(jù)數(shù)據(jù)組織方式的不同,Python的組合數(shù)據(jù)類型可分成三類:序列類型、集合類型和映射類型。
5.1認(rèn)識(shí)組合數(shù)據(jù)類型Python中常用的序列類型有字符串(str)、列表(list)和元組(tuple)。Python中的序列支持雙向索引:正向遞增索引和反向遞減索引。正向遞增索引從左向右依次遞增,第一個(gè)元素的索引為0,第二個(gè)元素的索引為1,以此類推;反向遞減索引從右向左依次遞減,從右數(shù)第一個(gè)元素的索引為-1,第二個(gè)元素的索引為-2,以此類推。
5.1認(rèn)識(shí)組合數(shù)據(jù)類型確定性:給定一個(gè)集合,那么任何一個(gè)元素是否在集合中就確定了?;ギ愋裕杭现械脑鼗ゲ幌嗤?。無(wú)序性:集合中的元素沒(méi)有順序,順序不同但元素相同的集合可視為同一集合Python集合具備確定性、互異性和無(wú)序性三個(gè)特性。Python要求放入集合中的元素必須是不可變類型,Python中的整型、浮點(diǎn)型、字符串類型和元組屬于不可變類型,列表、字典及集合本身都屬于可變的數(shù)據(jù)類型。
5.1認(rèn)識(shí)組合數(shù)據(jù)類型5.1認(rèn)識(shí)組合數(shù)據(jù)類型每個(gè)鍵只能有一個(gè)值,不允許同一個(gè)鍵在字典中重復(fù)出現(xiàn)。字典中的鍵是不可變類型。映射類型以鍵值對(duì)的形式存儲(chǔ)元素,鍵值對(duì)中的鍵與值之間存在映射關(guān)系。字典(dict)是Python唯一的內(nèi)置映射類型,字典的鍵必須遵守以下兩個(gè)原則:
5.1認(rèn)識(shí)組合數(shù)據(jù)類型5.1認(rèn)識(shí)組合數(shù)據(jù)類型
5.1認(rèn)識(shí)組合數(shù)據(jù)類型
第二部分PART025.2列表list_one=[] #使用[]創(chuàng)建空列表list_two=['p','y','t','h','o','n']list_three=['1',2,3.0]li_one=list() #使用list()創(chuàng)建空列表li_two=list('python') li_three=list([1,'python'])示例Python列表的創(chuàng)建方式非常簡(jiǎn)單,既可以直接使用中括號(hào)“[]”創(chuàng)建,也可以使用內(nèi)置的list()函數(shù)快速創(chuàng)建。list()函數(shù)接收一個(gè)可迭代類型的數(shù)據(jù),返回一個(gè)列表。5.2.1創(chuàng)建列表list_one=["Java","C#","Python","PHP"]示例print(list_one[1])索引print(list_one[1:])切片forliinlist_one:print(li,end='')循環(huán)5.2.2訪問(wèn)列表元素列表中的元素可以通過(guò)索引或切片這兩種方式進(jìn)行訪問(wèn),也可以在循環(huán)中依次訪問(wèn)。5.2.2訪問(wèn)列表元素1.通過(guò)索引方式訪問(wèn)列表元素訪問(wèn)列表時(shí)可以借助索引快速定位到列表中的元素。列表支持雙向索引。list_one=["Java","C++","Python","PHP"]示例print(list_one[1])
#正向索引print(list_one[-2])#反向索引
索引輸出結(jié)果:C++Python結(jié)果list[n]語(yǔ)法5.2.2訪問(wèn)列表元素2.通過(guò)切片方式訪問(wèn)列表元素切片用于截取列表中的部分元素,獲取一個(gè)新列表。list_one=["Java","C++","Python","PHP"]示例print(list_one[2:])print(list_one[:2])print(list_one[:])切片輸出結(jié)果:[‘Python’,’PHP’][‘Java’,‘C++’][‘Java’,‘C++’,’Python’,’PHP’]結(jié)果list[m:n:step]語(yǔ)法注意:1.包括開頭,
不包含結(jié)尾。2.步長(zhǎng)可以省略,
默認(rèn)為1。3.m可以省略,
表示從頭開始。4.n可以省略,
表示到末尾結(jié)束。list_one=["Java","C++","Python","PHP"]示例forliinlist_one:
print(li,end='')循環(huán)輸出結(jié)果:JavaC++PythonPHP結(jié)果5.2.2訪問(wèn)列表元素3.在循環(huán)中依次訪問(wèn)列表元素列表是一個(gè)可迭代對(duì)象,在for…in…語(yǔ)句中逐個(gè)訪問(wèn)列表中的元素。5.2.2多學(xué)一招:查找函數(shù)4.查找函數(shù)Python提供了index()、count()和len()三種方法用于查找列表元素。list.index(數(shù)據(jù),開始位置,結(jié)束位置)語(yǔ)法list.count(數(shù)據(jù))語(yǔ)法len(list)語(yǔ)法index():返回指定數(shù)據(jù)所在位置的索引值。count():統(tǒng)計(jì)指定數(shù)據(jù)在當(dāng)前列表中出現(xiàn)的次數(shù)。len():返回列表長(zhǎng)度,即列表中數(shù)據(jù)的個(gè)數(shù)。向列表中添加元素是非常常見(jiàn)的一種列表操作,Python提供了append()、extend()和insert()這幾個(gè)方法向列表末尾、指定位置添加元素。list_one=["Java","C++","Python","PHP"]示例list_one.append("Android")appendlist_one.extend([“C#","IOS"])extendlist_one.insert(2,“HTML")insert在列表末尾添加元素在列表末尾添加另一個(gè)序列的所有元素按照索引將元素插入列表的指定位置5.2.3添加列表元素修改列表元素的操作結(jié)果是改變?cè)瓉?lái)列表的內(nèi)容,包括列表的排序。1.修改指定索引值的數(shù)據(jù):通過(guò)索引值找到數(shù)據(jù)并賦一個(gè)新值。5.2.4修改列表元素li_one=[6,2,5,3]示例li_one[2]=9li_one[3]=10print(li_one)修改元素[6,2,9,10]結(jié)果2.sort()方法:用于按特定順序?qū)α斜碓嘏判颉i_one=[6,2,5,3]示例li_one.sort()print(li_one)排序[2,3,5,6]結(jié)果list.sort(key=None,reverse=False)語(yǔ)法有序的元素會(huì)覆蓋原來(lái)的列表元素,不產(chǎn)生新列表5.2.4修改列表元素3.sorted()方法:按特定順序?qū)α斜碓嘏判?,返回值是重新排序后的新列表。li_one=[6,2,5,3]示例li_two=sorted(list_one)print(li_one)print(li_two)排序[6,2,5,3][2,3,5,6]結(jié)果sorted(list,key=None,reverse=False)語(yǔ)法產(chǎn)生排序后的新列表,排序操作不會(huì)對(duì)原列表產(chǎn)生影響5.2.4修改列表元素4.reverse()方法:用于逆置列表,即把原列表中的元素從右至左依次排列。li_one=[6,2,5,3]示例li_one.reverse()print(li_one)逆置[3,5,2,6]結(jié)果list.reverse()語(yǔ)法逆置列表,即把原列表中的元素從右至左依次排列存放5.2.4修改列表元素刪除列表元素的常用方式有del語(yǔ)句、pop()方法、remove()方法和clear()方法。li_one=[6,2,5,3,7]示例delli_one[0]delli_one.remove(2)remove刪除列表中指定位置的元素移除列表中匹配到的第一個(gè)元素popli_one.pop()li_one.clear()clear移除列表中指定位置的元素,若未指定具體元素,則移除列表中的最后一個(gè)元素清空列表5.2.5刪除列表元素列表推導(dǎo)式是符合Python語(yǔ)法規(guī)則的復(fù)合表達(dá)式,它用于以簡(jiǎn)潔的方式根據(jù)已有的列表構(gòu)建滿足特定需求的列表。5.2.6列表推導(dǎo)式[expforxinlist]格式num=[1,2,3,4,5,6,7,8]示例num=[data*datafordatainnum]print(num)推導(dǎo)式[1,4,9,16,25,36,49,64]結(jié)果1.帶有if語(yǔ)句的列表推導(dǎo)式列表推導(dǎo)式還可以結(jié)合if判斷語(yǔ)句或for循環(huán)嵌套,生成更靈活的列表。5.2.6列表推導(dǎo)式[expforxinlistifcond]格式num=[1,2,3,4,5,6,7,8]示例num=[data*datafordatainnumifdata>4]print(num)推導(dǎo)式[25,36,49,64]結(jié)果2.for循環(huán)嵌套的列表推導(dǎo)式列表推導(dǎo)式還可以結(jié)合if判斷語(yǔ)句或for循環(huán)嵌套,生成更靈活的列表。5.2.6列表推導(dǎo)式[expforxinlist_1foryinlist_2]格式num_1=[1,2,3]num_2=[3,4,5]示例num_3=[x+yforxinnum_1foryinnum_2]print(num_3)推導(dǎo)式[4,5,6,5,6,7,6,7,8]結(jié)果
第三部分PART035.3元組元組的特性元組是一個(gè)不可變的數(shù)據(jù)類型,意味著一旦創(chuàng)建后就不能再修改。這種特性可以為代碼提供以下好處:1.安全性:由于元組是不可變的,所以代碼中的數(shù)據(jù)結(jié)構(gòu)不會(huì)被意外地修改。2.性能高效:Python在處理元組時(shí)比處理列表更高效。3.代碼編寫:代碼中,通常使用元組來(lái)表示不可變的一組數(shù)據(jù)。5.3元組元組的表現(xiàn)形式為一組包含在圓括號(hào)“()”中、由逗號(hào)分隔的元素,元組中元素的個(gè)數(shù)、類型不受限制。使用圓括號(hào)可以直接創(chuàng)建元組,還可以使用內(nèi)置函數(shù)tuple()構(gòu)建元組。t1=() #空元組t2=(1,2,3) #包含元素的元組t1=tuple() #創(chuàng)建空元組t2=tuple([1,2,3]) #利用列表創(chuàng)建元組示例5.3元組當(dāng)使用圓括號(hào)“()”創(chuàng)建元組時(shí),如果元組中只包含一個(gè)元素,那么需要在該元素的后面添加逗號(hào),從而保證Python解釋器能夠識(shí)別其為元組類型。t1=('python')t2=('python',)print(type(t1))print(type(t2))示例<class'str'><class'tuple'>結(jié)果5.3元組Python支持通過(guò)索引與切片訪問(wèn)元組的元素,也支持在循環(huán)中遍歷元組。tuple_demo=('p','y','t','h','o','n')示例tuple_demo[2]使用索引tuple_demo[2:5]使用切片foriintuple_demo:
print(i)遍歷元組5.3元組5.3元組查找函數(shù):index()、count()和len()三種方法用于查找元組元素。tuple.index(數(shù)據(jù),開始位置,結(jié)束位置)語(yǔ)法tuple.count(數(shù)據(jù))語(yǔ)法len(tuple)語(yǔ)法index():返回指定數(shù)據(jù)所在位置的索引值。count():統(tǒng)計(jì)指定數(shù)據(jù)在當(dāng)前元組中出現(xiàn)的次數(shù)。len():返回元組長(zhǎng)度,即元組中數(shù)據(jù)的個(gè)數(shù)。
第四部分PART045.4集合Python的集合(set)本身是可變類型,但Python要求放入集合中的元素必須是不可變類型。集合類型與列表和元組的區(qū)別是:集合中的元素?zé)o序且必須唯一。集合的表現(xiàn)形式為一組包含在大括號(hào)“{}”中、由逗號(hào)“,”分隔的元素。使用“{}”可以直接創(chuàng)建集合,使用內(nèi)置函數(shù)set()也可以創(chuàng)建集合。s1={1}s2={1,'b',(2,5)}s3=set()s4=set('python')示例5.4集合需要注意的是,使用{}不能創(chuàng)建空集合(不包含元素的{}創(chuàng)建的是字典變量),空集合只能利用set()函數(shù)創(chuàng)建。set_demo1={}set_demo2=set()print(type(set_demo1))print(type(set_demo2))<class'dict'><class'set'>結(jié)果示例5.4集合集合也可以利用推導(dǎo)式創(chuàng)建,集合推導(dǎo)式的格式與列表推導(dǎo)式相似,區(qū)別在于集合推導(dǎo)式外側(cè)為大括號(hào)“{}”。{expforxinsetifcond}格式5.4集合集合是可變的,集合中的元素可以動(dòng)態(tài)增加或刪除。Python提供了一些內(nèi)置方法來(lái)操作集合,常見(jiàn)內(nèi)置方法如下表所示:5.4集合常見(jiàn)操作方法說(shuō)明set.add(x)向集合中添加元素x,若x已存在,不做處理set.update(x)向集合中添加一個(gè)序列set.remove(x)刪除集合中的元素x,若x不存在,拋出異常set.discard(x)刪除集合中的元素x,若x不存在,不做處理set.pop()隨機(jī)返回集合中的一個(gè)元素,同時(shí)刪除該元素,若集合為空,拋出異常set.clear()清空集合set.copy()復(fù)制集合,返回值為集合s1.isdisjoint(s2)判斷集合s1和s2中是否沒(méi)有相同元素,沒(méi)有返回True,有則返回False
第五部分PART055.5字典
提到字典這個(gè)詞相信大家都不會(huì)陌生,學(xué)生時(shí)期碰到不認(rèn)識(shí)的字時(shí),大家都會(huì)使用字典的部首表查找對(duì)應(yīng)的漢字。
Python中的字典數(shù)據(jù)與學(xué)生使用的字典有類似的功能,它以“鍵值對(duì)”的形式組織數(shù)據(jù),利用“鍵”快速查找“值”。通過(guò)“鍵”查找“值”的過(guò)程稱為映射,Python中的字典是典型的映射類型。5.5.1創(chuàng)建字典字典的表現(xiàn)形式為一組包含在大括號(hào)“{}”中的鍵值對(duì),每個(gè)鍵值對(duì)是一個(gè)字典元素,元素之間通過(guò)逗號(hào)“,”分隔,鍵和值之間通過(guò)“:”分隔。{鍵1:值1,鍵2:值2,...,鍵N:值N}格式字典的值value可以是任意類型,但鍵key不能是列表或字典類型。字典像集合一樣使用“{}”包裹元素,它也具備類似集合的特點(diǎn):字典元素?zé)o序,鍵必須唯一。5.5.1創(chuàng)建字典使用“{}”可以直接創(chuàng)建字典,還可以使用內(nèi)置函數(shù)dict()創(chuàng)建字典。d1={} #創(chuàng)建空字典d2={'A':'123','B':'135','C':'680'} d3={'A':123,12:'python'}示例d4=dict() d5=dict({'A':'123','B':'135'})示例5.5.1創(chuàng)建字典5.6.2字典的訪問(wèn)d2=dict({'A':'123','B':'135'})示例d2['A']鍵d2.get('B')get()'123''135'字典的值可通過(guò)“鍵”或內(nèi)置方法get()訪問(wèn)。5.5.2字典的訪問(wèn)info={'name':'Jack','age':23,'height':185}示例info.keys()info.values()dict_keys(['name','age','height'])info.items()獲取所有鍵獲取所有值獲取所有元素dict_values(['Jack',23,185])字典涉及的數(shù)據(jù)分為鍵、值和元素(鍵值對(duì)),除了直接利用鍵訪問(wèn)值外,Python還提供了內(nèi)置方法keys()、values()和items()訪問(wèn)字典數(shù)據(jù)。5.5.2字典的訪問(wèn)dict_items([('name','Jack'),('age',23),('height',185)])字典支持通過(guò)為指定的鍵賦值或使用update()方法添加或修改元素。通過(guò)鍵添加元素:字典變量[鍵]=值使用update()添加元素:dict.update(key=value)5.5.3字典元素的添加與修改add_dict={'name':'Jack','age':23,'height':185}示例add_dict['sco']=98通過(guò)鍵添加add_dict.update(sco=98) 使用update方法添加添加字典元素5.5.3字典元素的添加與修改修改字典元素的本質(zhì)是通過(guò)鍵獲取值,再重新對(duì)元素進(jìn)行賦值。修改元素的操作與添加元素的操作相同。modify_dict={'stu1':'小明','stu2':'小剛','stu3':'小蘭'}示例modify_dict['stu2']='劉婷'通過(guò)鍵修改modify_dict.update(stu3='張強(qiáng)')使用update方法修改5.5.3字典元素的添加與修改del()/del:根據(jù)指定鍵刪除字典中的指定元素或刪除字典pop():根據(jù)指定鍵刪除字典中的指定元素popitem():隨機(jī)刪除字典中的元素clear():清空字典中的元素Python支持通過(guò)del、pop()、popitem()和clear()方法刪除字典中的元素。5.5.4字典元素的刪除利用字典推導(dǎo)式可快速交換字典中的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 28 面團(tuán)長(zhǎng)大了(教學(xué)設(shè)計(jì))-三年級(jí)科學(xué)上冊(cè)青島版(五四制)
- 寧夏民族職業(yè)技術(shù)學(xué)院《德育論》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江農(nóng)業(yè)商貿(mào)職業(yè)學(xué)院《Oracle數(shù)據(jù)庫(kù)應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島飛洋職業(yè)技術(shù)學(xué)院《運(yùn)動(dòng)(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國(guó)石油大學(xué)(北京)《文化人類學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 益陽(yáng)職業(yè)技術(shù)學(xué)院《數(shù)字多媒體作品創(chuàng)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東潮州衛(wèi)生健康職業(yè)學(xué)院《土地測(cè)量學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 集寧師范學(xué)院《數(shù)控加工工藝及編程》2023-2024學(xué)年第二學(xué)期期末試卷
- 泰州2024年江蘇泰州靖江市公安局補(bǔ)錄招聘警務(wù)輔助人員18人筆試歷年參考題庫(kù)附帶答案詳解
- 煙臺(tái)工程職業(yè)技術(shù)學(xué)院《財(cái)務(wù)共享理論與實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年廣東省《輔警招聘考試必刷500題》考試題庫(kù)含答案
- 國(guó)家科技安全教學(xué)課件
- DB3301T 1088-2018 杭州龍井茶栽培技術(shù)規(guī)范
- 2010浙G22 先張法預(yù)應(yīng)力混凝土管樁
- 安徽省部分省示范中學(xué)2025屆高三第一次模擬考試英語(yǔ)試卷含解析
- 工程機(jī)械租賃服務(wù)方案及保障措施 (二)
- 國(guó)網(wǎng)基建安全管理課件
- 部編版初中語(yǔ)文7-9年級(jí)教材必背古詩(shī)詞、古文99篇詳細(xì)解析及欣賞
- DB36T 1393-2021 生產(chǎn)安全風(fēng)險(xiǎn)分級(jí)管控體系建設(shè)通則
- 檔案三合一制度培訓(xùn)
- Unit 1 I go to school by bus. Period 4(說(shuō)課稿)-2023-2024學(xué)年教科版(廣州)英語(yǔ)二年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論