




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章組合數(shù)據(jù)類(lèi)型Python深度學(xué)習(xí)及智能車(chē)競(jìng)賽實(shí)踐010203概述序列類(lèi)型及其操作集合類(lèi)型及其操作目錄第2頁(yè)040506字典類(lèi)型及其操作實(shí)例:用類(lèi)創(chuàng)建智能車(chē)自動(dòng)巡航字典jieba庫(kù)07wordcloud庫(kù)010203概述序列類(lèi)型及其操作集合類(lèi)型及其操作目錄第3頁(yè)040506字典類(lèi)型及其操作實(shí)例:用類(lèi)創(chuàng)建智能車(chē)自動(dòng)巡航字典jieba庫(kù)07wordcloud庫(kù)計(jì)算機(jī)不僅需要對(duì)單個(gè)變量表示的數(shù)據(jù)進(jìn)行處理,更多情況,計(jì)算機(jī)需要對(duì)一組數(shù)據(jù)進(jìn)行批量處理。一些例子:給定一組數(shù)據(jù)集的標(biāo)簽值{car,truck,bus,people,bicycle},統(tǒng)計(jì)數(shù)據(jù)集中每一類(lèi)標(biāo)簽的數(shù)量;給定一段車(chē)輛行駛的數(shù)據(jù),統(tǒng)計(jì)該段數(shù)據(jù)中加速狀態(tài)所占的比例;智能車(chē)競(jìng)賽所用攝像頭采集到了產(chǎn)生了很多組圖片數(shù)據(jù),對(duì)這些圖片數(shù)據(jù)進(jìn)行分析。1.概述
組合數(shù)據(jù)類(lèi)型能夠?qū)⒍鄠€(gè)同類(lèi)型或不同類(lèi)型的數(shù)據(jù)組織起來(lái),通過(guò)單一的表示使數(shù)據(jù)操作更有序更容易;根據(jù)數(shù)據(jù)之間的關(guān)系,組合數(shù)據(jù)類(lèi)型可以分為三類(lèi):1.序列類(lèi)型2.集合類(lèi)型3.映射類(lèi)型1.概述組合數(shù)據(jù)類(lèi)型序列類(lèi)型集合類(lèi)型映射類(lèi)型集合(set)字符串(str)元組(tuple)列表(list)字典(dict)是一個(gè)元素向量,元素之間存在先后關(guān)系,通過(guò)序號(hào)訪問(wèn),元素之間不排他。是一個(gè)元素集合,元素之間無(wú)序,相同元素在集合中唯一存在。是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個(gè)元素是一個(gè)鍵值對(duì),表示為(key,value)。1.概述010203概述
序列類(lèi)型及其操作集合類(lèi)型及其操作目錄第7頁(yè)040506字典類(lèi)型及其操作實(shí)例:用類(lèi)創(chuàng)建智能車(chē)自動(dòng)巡航字典jieba庫(kù)07wordcloud庫(kù)序列類(lèi)型元素之間存在先后關(guān)系,通過(guò)序號(hào)訪問(wèn),當(dāng)需要訪問(wèn)序列中某特定值時(shí),只需要通過(guò)下標(biāo)標(biāo)出即可,所有序列類(lèi)型使用相同的索引體系,即正向遞增和反向遞減序號(hào)。序列元素之間存在順序關(guān)系,可以存在相同數(shù)值但位置不同的元素。反向遞減序號(hào)正向遞增序號(hào)cartruckbuspedestrianbicycle2.序列類(lèi)型及其操作序列類(lèi)型6個(gè)通用操作符操作符及應(yīng)用描述xins如果x是序列s的元素,返回True,否則返回Falsexnotins如果x是序列s的元素,返回False,否則返回Trues+t連接兩個(gè)序列s和ts*n或n*s將序列s復(fù)制n次s[i]索引,返回s中的第i個(gè)元素,i是序列的序號(hào)s[i:j]
或s[i:j:k]切片,返回序列s中第i到j(luò)以k為步長(zhǎng)的元素子序列2.序列類(lèi)型及其操作2.序列類(lèi)型及其操作>>>
ls=["python",123,
"競(jìng)賽"]>>>
ls[::-1]['python',123,'競(jìng)賽']['競(jìng)賽',123,'python']['nohtyp',321,'競(jìng)賽'][321,'競(jìng)賽','nohtyp']
ABCD函數(shù)和方法描述len(s)返回序列s的長(zhǎng)度,即元素個(gè)數(shù)min(s)返回序列s的最小元素,s中元素需要可比較max(s)返回序列s的最大元素,s中元素需要可比較s.index(x)或s.index(x,i,j)返回序列s從i開(kāi)始到j(luò)位置中第一次出現(xiàn)元素x的位置s.count(x)返回序列s中出現(xiàn)x的總次數(shù)序列類(lèi)型5個(gè)通用函數(shù)和方法2.序列類(lèi)型及其操作>>>ls=["python",123,
"競(jìng)賽"]>>>
len(ls)3>>>s="vehicle100">>>max(s)'v'序列類(lèi)型操作實(shí)例2.序列類(lèi)型及其操作02序列類(lèi)型及其操作2.1元組類(lèi)型2.2列表類(lèi)型目錄第13頁(yè)元組是一種序列類(lèi)型,一旦創(chuàng)建就不能被修改使用小括號(hào)()或tuple()創(chuàng)建,元素間用逗號(hào)分隔可以使用或不使用小括號(hào)2.1元組類(lèi)型>>>vehicle="truck","car","bus","vans">>>vehicle('truck','car','bus',‘vans')>>>obstacle=("pedestrian",100,"animal",
vehicle)>>>obstacle('pedestrian',100,'animal',('truck','car','bus','vans'))>>>obstacle[2]'animal'>>>obstacle=
('pedestrian',100,'animal',('truck','car','bus','vans')>>>obstacle[-1][2]2.1元組類(lèi)型'truck''car''bus''vans'ABCD
元組類(lèi)型在表達(dá)固定數(shù)據(jù)項(xiàng)、函數(shù)多返回值、多變量同步賦值、循環(huán)遍歷等情況下十分有用。>>>deffunc(n):
#函數(shù)多返回值returnn,n**5>>>a,b=‘truck',‘car'#多變量同步賦值>>>a,b=(b,a)#多變量同步賦值,括號(hào)可省略>>>importmath>>>forx,yin((1,2),(3,7),(4,6)):
#循環(huán)遍歷print(math.hypot(x,y))#求多個(gè)坐標(biāo)值到原點(diǎn)的距離2.1元組類(lèi)型02序列類(lèi)型及其操作2.1元組類(lèi)型2.2列表類(lèi)型目錄第17頁(yè)列表是一種序列類(lèi)型,創(chuàng)建后可以隨意被修改;使用方括號(hào)[]或list()創(chuàng)建,元素間用逗號(hào)“,”
分隔;列表中各元素類(lèi)型可以不同,無(wú)長(zhǎng)度限制。2.2列表類(lèi)型>>>
list0=[0,1,2,3,4]>>>
list0[0,1,2,3,4]>>>
list1=["123",1,3.0,[1,2],{"key":"val"}]>>>
list1['123',1,3.0,[1,2],{'key':'val'}]>>>list2=[list0,list1]>>>
list2[[0,1,2,3,4],['123',1,3.0,[1,2],{'key':'val'}]]列表用中括號(hào)([])表示,也可以通過(guò)list()函數(shù)將元組或字符串轉(zhuǎn)化成列表。直接使用list()函數(shù)會(huì)返回一個(gè)空列表。索引是列表的基本操作,用于獲得列表的一個(gè)元素,使用[]作為索引操作符。>>>ls=['pedestrian',100,'animal',('truck','car','bus','vans')]>>>ls['pedestrian',100,'animal',('truck','car','bus','vans')]>>>ls[3][-1][0]‘V'>>>list(('pedestrian',100,'animal','vehicle'))#將元組轉(zhuǎn)換成列表['pedestrian',100,'animal','vehicle']>>>list(“百度智慧交通創(chuàng)意賽”)#將字符串轉(zhuǎn)換成列表['百','度','智','慧','交','通','創(chuàng)','意','賽']>>>list()[]2.2列表類(lèi)型['全','國(guó)','大','學(xué)','生','智','能','汽','車(chē)','競(jìng)','賽']['我','來(lái)','啦']['全','國(guó)','大','學(xué)','生','智','能','汽','車(chē)','競(jìng)','賽','我','來(lái)','啦']['*','*','*','*','*'][1,2,1,2,1,2,1,2,1,2]列表數(shù)據(jù)結(jié)構(gòu)支持通過(guò)列表的組合生成新列表,通過(guò)“+”運(yùn)算符實(shí)現(xiàn)列表的拼接,通過(guò)“*”運(yùn)算符實(shí)現(xiàn)列表的復(fù)制。2.2列表類(lèi)型與整數(shù)和字符串不同,列表要處理一組數(shù)據(jù),因此,列表必須通過(guò)顯式的數(shù)據(jù)賦值才能生成,簡(jiǎn)單將一個(gè)列表賦值給另一個(gè)列表不會(huì)生成新的列表對(duì)象。>>>ls=[125,“Vehicle",10.1]#用數(shù)據(jù)賦值產(chǎn)生列表ls>>>lt=ls#lt是ls所對(duì)應(yīng)數(shù)據(jù)的引用,lt并不包含真實(shí)數(shù)據(jù)>>>ls[0]=0>>>lt[0,‘Vehicle',10.1]2.2列表類(lèi)型[125,"Vehicle",10.1]lslt由于列表屬于序列類(lèi)型,所以列表也支持成員關(guān)系操作符(in)、長(zhǎng)度計(jì)算函數(shù)(len())、分片([])、遍歷等操作。列表可以同時(shí)使用正向遞增序號(hào)和反向遞減序號(hào)進(jìn)行元素值索引,可以采用標(biāo)準(zhǔn)的比較操作符(<、<=、==、!=、>=、>)進(jìn)行比較,列表的比較實(shí)際上是單個(gè)數(shù)據(jù)項(xiàng)的逐個(gè)比較。2.2列表類(lèi)型列表的遍歷與元組一樣,列表可以通過(guò)for…in語(yǔ)句對(duì)其元素進(jìn)行遍歷,基本語(yǔ)法結(jié)構(gòu)如下:for<任意變量名>in<列表名>:
語(yǔ)句塊
2.2列表類(lèi)型ls1=[100,"Vehicle",'bicycle',300]ls2=[x*2forxinls1]print(ls2)[200,'VehicleVehicle','bicyclebicycle',600]列表的遍歷2.2列表類(lèi)型ls1=[100,"Vehicle",'bicycle',300]foriinls1:print(i*2)print(ls1*2)200VehicleVehiclebicyclebicycle600[100,'Vehicle','bicycle',300,100,'Vehicle','bicycle',300]200VehicleVehiclebicyclebicycle600[200,‘Vehicle’,‘Vehicle’,‘bicycle’
,600]AB
切片是列表的基本操作,用于獲得列表的一個(gè)片段,即獲得一個(gè)或多個(gè)元素。切片后的結(jié)果也是列表類(lèi)型,切片有兩種使用方式:<列表或列表變量>[N:M]或<列表或列表變量>[N:M:K]
<列表或列表變量>[N:M]:獲取列表類(lèi)型從N到M(不包含M)的元素組成新的列表。2.2列表類(lèi)型列表的切片<列表或列表變量>[N:M:K]:切片獲取列表類(lèi)型從N到M(不包含M)以K為步長(zhǎng)所對(duì)應(yīng)元素組成的列表。當(dāng)N不存在時(shí),缺省值為0,從第一個(gè)元素開(kāi)始截取;當(dāng)M不存在時(shí),截取到最后一個(gè)元素;
當(dāng)M<=N時(shí),截取到的是空列表。當(dāng)K不存在時(shí),切片獲取列表類(lèi)型從N到M(不包含M)的元素組成新的列表。>>>ls=[100,"Vehicle",'bicycle',300]>>>ls[1:4]["Vehicle",'bicycle',300]>>>ls[-1:-3][]>>>ls[-3:-1]['Vehicle','bicycle']>>>ls[0:4:2][1010,'bicycle']>>>ls[2:]['bicycle',300]>>>ls[:3][100,"Vehicle",'bicycle']2.2列表類(lèi)型列表類(lèi)型繼承序列類(lèi)型特點(diǎn),有一些通用的操作函數(shù)
操作符描述len(ls)列表ls的元素個(gè)數(shù)(長(zhǎng)度)min(ls)列表ls中的最小元素max(ls)列表ls中的最大元素list(x)將x轉(zhuǎn)變成列表類(lèi)型>>ls=[100,"Vehicle",'bicycle',300]
>>>len(ls)4>>>lt=[?
vans",[100,"Vehicle",'bicycle',[1,30]]]>>>len(lt)22.2列表類(lèi)型列表的操作方法函數(shù)或方法描述ls.append(x)在列表ls最后增加一個(gè)元素xls.clear()刪除ls中所有元素ls.copy()生成一個(gè)新列表,復(fù)制ls中所有元素ls.insert(i,x)在列表ls第i位置增加元素xls.pop(i)將列表ls中第i項(xiàng)元素取出并刪除該元素ls.remove(x)將列表中出現(xiàn)的第一個(gè)元素x刪除ls.reverse()列表ls中元素反轉(zhuǎn)2.2列表類(lèi)型請(qǐng)分析下面程序輸出結(jié)果2.2列表類(lèi)型4190['b2','c1','e0','f3'][7,68,767,876]['f3','e0','c1','b2'][876,767,68,7]['b2','c1','e0','f3'][7,68,767,876]列表的操作方法-排序2.2列表類(lèi)型[5,1,68,2,3][5,1,68,2,3,[200,101]][5,1,2,3,[100,101]][5,1,2,3,100,101][5,1,2,3,100,101,'7','8','9']2.2列表類(lèi)型列表的操作方法-增加元素TrueTrueFalseTrueTraceback(mostrecentcalllast):File"D:\5\5.7compare.py",line7,in<module>print(list0>=456)#'>='不支持不同類(lèi)型對(duì)象的比較TypeError:'>='notsupportedbetweeninstancesof'list'and'int'2.2列表類(lèi)型列表的操作方法-比較大小可以使用Python保留字del對(duì)列表元素或片段進(jìn)行刪除,使用方法如下:del<列表變量>[<索引序號(hào)>]或del<列表變量>[<索引起始>:<索引結(jié)束>]>>>lt=[100,"Vehicle",'bicycle',300]>>>dellt[1]>>>print(lt)[100,'bicycle',300]>>>dellt[1:]>>>print(lt)[100]2.2列表類(lèi)型列表的操作方法-del列表在實(shí)現(xiàn)基本數(shù)據(jù)統(tǒng)計(jì)時(shí)發(fā)揮了重要作用:列表是一個(gè)動(dòng)態(tài)長(zhǎng)度的數(shù)據(jù)結(jié)構(gòu),可以根據(jù)需求增加或減少元素;列表的一系列方法或操作符為計(jì)算提供了簡(jiǎn)單的元素運(yùn)算手段;列表提供了對(duì)每個(gè)元素的簡(jiǎn)單訪問(wèn)方式及所有元素的遍歷方式。
2.2列表類(lèi)型列表是一個(gè)十分靈活的數(shù)據(jù)結(jié)構(gòu),它具有處理任意長(zhǎng)度、混合類(lèi)型的能力,并提供了豐富的基礎(chǔ)操作符和方法。當(dāng)程序需要使用組合數(shù)據(jù)類(lèi)型管理批量數(shù)據(jù)時(shí),請(qǐng)盡量使用列表類(lèi)型??偨Y(jié)010203概述
序列類(lèi)型及其操作集合類(lèi)型及其操作目錄第35頁(yè)040506字典類(lèi)型及其操作實(shí)例:用類(lèi)創(chuàng)建智能車(chē)自動(dòng)巡航字典jieba庫(kù)07wordcloud庫(kù)集合類(lèi)型與數(shù)學(xué)中集合的概念一致,是包含0個(gè)或多個(gè)數(shù)據(jù)項(xiàng)的無(wú)序組合。集合中元素不可重復(fù),元素類(lèi)型只能是固定數(shù)據(jù)類(lèi)型,例如:整數(shù)、浮點(diǎn)數(shù)、字符串、元組等,列表、字典和集合類(lèi)型本身都是可變數(shù)據(jù)類(lèi)型,不能作為集合的元素。3.集合類(lèi)型及其操作{}和
set()函數(shù)可以用于生成集合,集合用大括號(hào)({})表示。由于集合元素是無(wú)序的,集合的輸出效果與定義順序可以不一致。>>>S={100,"Vehicle",(20,'bicycle'),300}>>>S{(20,'bicycle'),100,300,'Vehicle'}>>>S=set((100,"Vehicle",(20,'bicycle'),300))>>>S{(20,'bicycle'),100,300,'Vehicle'}3.集合類(lèi)型及其操作由于集合元素獨(dú)一無(wú)二,使用集合類(lèi)型能夠過(guò)濾掉重復(fù)元素;由于集合是無(wú)序組合,它沒(méi)有索引和位置的概念,不能切片;集合中元素可以動(dòng)態(tài)增加或刪除。{'a','l','b'}{1,2,3}3.集合類(lèi)型及其操作集合類(lèi)型有4個(gè)常用操作符,交集(&)、并集(|)、差集(-)、補(bǔ)集(^),操作邏輯與數(shù)學(xué)定義相同。3.集合類(lèi)型及其操作操作符描述A-B返回一個(gè)新集合,包括在集合A中但不在集合B中的元素A&B返回一個(gè)新集合,包括同時(shí)在集合A和B中的元素A^B返回一個(gè)新集合,包括集合A和B中元素,但不包括同時(shí)在其中的元素A|B返回一個(gè)新集合,包括集合A和B中所有元素>>>S={1010,"2010",77.6}>>>T={1010,"2010",12.8,1010,1010}>>>S|T>>>T|S>>>S-T>>>T–S>>>S&T>>>T&S>>>S^T>>>T^S已知集合S和T,求他們經(jīng)過(guò)如下數(shù)學(xué)操作運(yùn)算后的結(jié)果。>>>S|T{77.6,1010,12.8,'2010'}>>>T|S{1010,12.8,77.6,'2010'}>>>S-T{77.6}>>>T–S{12.8}>>>S&T{1010,'2010'}>>>T&S{1010,'2010'}>>>S^T{77.6,12.8}>>>T^S{77.6,12.8}3.集合類(lèi)型及其操作集合類(lèi)型常用的操作函數(shù)(或方法)3.集合類(lèi)型及其操作函數(shù)或方法描述S.add(x)如果數(shù)據(jù)項(xiàng)x不在集合S中,將x增加到SS.clear()移除S中所有數(shù)據(jù)項(xiàng)S.remove(x)如果x在集合S中,移除該元素;len(S)返回集合S元素個(gè)數(shù)xinS如果x是S的元素,返回True,否則返回FalsexnotinS如果x不是S的元素,返回True,否則返回FalseAfterbusberomoved,set0is{'truck'}Afterbusbediscarded,set1is{'truck'}Afterbusbediscardedagain,set1is{'truck'}Afteroneelementbepopped,set2is{'bus'}Afterset3becleared,set3isset()3.集合類(lèi)型及其操作集合主要用于三個(gè)場(chǎng)景:成員關(guān)系測(cè)試、元素去重和刪除數(shù)據(jù)項(xiàng):集合類(lèi)型與其他類(lèi)型最大的不同在于它不包含重復(fù)元素,因此,當(dāng)需要對(duì)一維數(shù)據(jù)進(jìn)行去重或進(jìn)行數(shù)據(jù)重復(fù)處理時(shí),一般用集合來(lái)完成。>>>tup=("car","truck","bus","truck","pedestrain","bus","bicycle")>>>print(set(tup))#元素去重{'bus','bicycle','pedestrain','car','truck'}>>>print("car"in{"car","truck","bus","pedestrain","bicycle"})True>>>newtup=tuple(set(tup)-{"car"})#去重同時(shí)刪除數(shù)據(jù)項(xiàng)print(newtup)('bus','truck','bicycle','pedestrain')3.集合類(lèi)型及其操作集合使用{}和set()函數(shù)創(chuàng)建集合間操作:交(&)、并(|)、差(-)、補(bǔ)(^)、比較(>=<)集合類(lèi)型方法:.add()、.remove()、.pop()等集合類(lèi)型主要應(yīng)用于:包含關(guān)系比較、數(shù)據(jù)去重總結(jié)3.集合類(lèi)型及其操作010203概述
序列類(lèi)型及其操作集合類(lèi)型及其操作目錄第45頁(yè)040506字典類(lèi)型及其操作實(shí)例:用類(lèi)創(chuàng)建智能車(chē)自動(dòng)巡航字典jieba庫(kù)07wordcloud庫(kù)字典類(lèi)型屬于映射類(lèi)型,映射類(lèi)型是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個(gè)元素是一個(gè)鍵值對(duì),即元素是(key,value),元素之間是無(wú)序的。鍵值對(duì)(key,value)是一種二元關(guān)系。在Python中,映射類(lèi)型主要以字典(dict)體現(xiàn)。CarColor={“1號(hào)賽車(chē)”:“黃色”,“2號(hào)賽車(chē)”:“黑色”}1號(hào)賽車(chē)2號(hào)賽車(chē)黑色紅色白色黃色1號(hào)賽車(chē):黃色2號(hào)賽車(chē):黑色4.字典類(lèi)型及其操作映射類(lèi)型是序列類(lèi)型的一種擴(kuò)展。在序列類(lèi)型中,采用從0開(kāi)始的正向遞增序號(hào)或者-1開(kāi)始的反向遞減序號(hào)進(jìn)行具體元素值的索引。而映射類(lèi)型則用“鍵”去索引具體的“值”。
鍵(key)表示一個(gè)屬性,也可以理解為一個(gè)類(lèi)別或項(xiàng)目,值(value)是屬性的內(nèi)容,鍵值對(duì)刻畫(huà)了一個(gè)屬性和它的值。鍵值對(duì)將映射關(guān)系結(jié)構(gòu)化,用于存儲(chǔ)和表達(dá)。4.字典類(lèi)型及其操作CarColor={“1號(hào)賽車(chē)”:“黃色”,“2號(hào)賽車(chē)”:“黑色”}“鍵值對(duì)”是組織數(shù)據(jù)的一種重要方式,廣泛應(yīng)用在Web系統(tǒng)中。鍵值對(duì)的基本思想是將“值”信息關(guān)聯(lián)一個(gè)“鍵”信息,進(jìn)而通過(guò)鍵信息查找對(duì)應(yīng)值信息,這個(gè)過(guò)程叫映射。Python語(yǔ)言中通過(guò)字典類(lèi)型實(shí)現(xiàn)映射。Python語(yǔ)言中的字典可以通過(guò)大括號(hào)({})建立,建立模式如下:
{<鍵1>:<值1>,<鍵2>:<值2>,…,<鍵n>:<值n>}
其中,鍵和值通過(guò)冒號(hào)連接,不同鍵值對(duì)通過(guò)逗號(hào)隔開(kāi)。4.字典類(lèi)型及其操作字典打印出來(lái)的順序與創(chuàng)建之初的順序可能不同,這不是錯(cuò)誤。字典類(lèi)型也具有和集合類(lèi)似的性質(zhì),各元素之間,即鍵值對(duì)之間沒(méi)有順序且不能重復(fù)。>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>print(Dcountry){'中國(guó)':'北京','法國(guó)':'巴黎','美國(guó)':'華盛頓'}4.字典類(lèi)型及其操作字典元素“鍵值對(duì)”中鍵是值的索引,因此,可以直接利用鍵值對(duì)關(guān)系索引元素,通過(guò)鍵索引值,并可以通過(guò)鍵修改值。字典中鍵值對(duì)的訪問(wèn)模式如下,采用中括號(hào)格式: <值>=<字典變量>[<鍵>]>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>Dcountry["中國(guó)"]'北京‘>>>Dcountry["中國(guó)"]='大北京'>>>print(Dcountry){'中國(guó)':'大北京','法國(guó)':'巴黎','美國(guó)':'華盛頓'}4.字典類(lèi)型及其操作通過(guò)中括號(hào)可以增加新的元素
直接使用{}可以創(chuàng)建一個(gè)空的字典,并通過(guò)中括號(hào)[]向其增加元素。>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>Dcountry["英國(guó)"]="倫敦">>>print(Dcountry){'中國(guó)':'北京','法國(guó)':'巴黎','美國(guó)':'華盛頓','英國(guó)':'倫敦'}>>>Dp={}>>>Dp['2^10']=1024>>>print(Dp){'2^10':1024}4.字典類(lèi)型及其操作字典類(lèi)型有一些通用的操作函數(shù)>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>len(Dcountry)34.字典類(lèi)型及其操作操作符描述len(d)字典d的元素個(gè)數(shù)(長(zhǎng)度)min(d)字典d中的最小元素max(d)字典d中的最大元素dict()生成一個(gè)空字典dict()函數(shù)用于生成一個(gè)空字典,作用和{}一致。min(d)和max(d)分別返回字典d中最小或最大索引值。>>>>d={"201801":"小明","201802":"小紅","201803":"小白”}>>>min(d)'201801'>>>max(d)'201803'>>>d=dict()>>>print(d){}4.字典類(lèi)型及其操作字典類(lèi)型通用的操作方法4.字典類(lèi)型及其操作操作符描述d.keys()返回所有的鍵信息d.values()返回所有的值信息d.items()返回所有的鍵值對(duì)d.get(key,default)鍵存在則返回相應(yīng)值,否則返回默認(rèn)值d.pop(key,default)鍵存在則返回相應(yīng)值,同時(shí)刪除鍵值對(duì),否則返回默認(rèn)值d.popitem()隨機(jī)從字典中取出一個(gè)鍵值對(duì),以元組(key,value)形式返回d.clear()刪除所有的鍵值對(duì)d.keys()返回字典中的所有鍵信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類(lèi)型dict_keys,專(zhuān)用于表示字典的鍵,如果希望更好的使用返回結(jié)果,可以將其轉(zhuǎn)換為列表類(lèi)型。>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>Dcountry.keys()dict_keys(['中國(guó)','美國(guó)','法國(guó)'])>>>type(Dcountry.keys())<class'dict_keys'>>>>list(Dcountry.keys())['中國(guó)','美國(guó)','法國(guó)']4.字典類(lèi)型及其操作d.values()返回字典中的所有值信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類(lèi)型dict_values。如果希望更好的使用返回結(jié)果,可以將其轉(zhuǎn)換為列表類(lèi)型。>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>Dcountry.values()dict_values(['北京','華盛頓','巴黎'])>>>type(Dcountry.values())<class'dict_values'>>>>list(Dcountry.values())['北京','華盛頓','巴黎']4.字典類(lèi)型及其操作d.items()返回字典中的所有鍵值對(duì)信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類(lèi)型dict_items。>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>Dcountry.items()dict_items([('中國(guó)','北京'),('美國(guó)','華盛頓'),('法國(guó)','巴黎')])>>>type(Dcountry.items())<class'dict_items'>>>>list(Dcountry.items())[('中國(guó)','北京'),('美國(guó)','華盛頓'),('法國(guó)','巴黎')]4.字典類(lèi)型及其操作d.get(key,default)根據(jù)鍵信息查找并返回值信息,如果key存在則返回相應(yīng)值,否則返回默認(rèn)值,第二個(gè)元素default可以省略,如果省略則默認(rèn)值為空。>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>Dcountry.get('美國(guó)','悉尼')#'美國(guó)'在字典中存在'華盛頓'>>>Dcountry.get('澳大利亞','悉尼')#'澳大利亞'在字典中不存在'悉尼'4.字典類(lèi)型及其操作d.pop(key,default)根據(jù)鍵信息查找并取出值信息,如果key存在則返回相應(yīng)值,否則返回默認(rèn)值,第二個(gè)元素default可以省略,如果省略則默認(rèn)值為空。相比d.get()方法,d.pop()在取出相應(yīng)值后,將從字典中刪除對(duì)應(yīng)的鍵值對(duì)。>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>Dcountry.pop(“中國(guó)”,“首爾")'北京'>>>Dcountry.pop(“韓國(guó)”,“首爾")‘首爾’>>>Dcountry{'美國(guó)':'華盛頓','法國(guó)':'巴黎'}4.字典類(lèi)型及其操作d.popitem()隨機(jī)從字典中取出一個(gè)鍵值對(duì),以元組(key,value)形式返回,取出后從字典中刪除這個(gè)鍵值對(duì)。d.clear()刪除字典中所有鍵值對(duì)。>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>Dcountry.popitem()('法國(guó)','巴黎')>>>Dcountry{'中國(guó)':'北京','美國(guó)':'華盛頓'}>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>country.clear()>>>Dcountry[]4.字典類(lèi)型及其操作如果希望刪除字典中某一個(gè)元素,可以使用Python保留字del。字典類(lèi)型也支持保留字in,用來(lái)判斷一個(gè)鍵是否在字典中。如果在則返回True,否則返回False。>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>delDcountry["美國(guó)"]>>>Dcountry{'中國(guó)':'北京','法國(guó)':'巴黎'}>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>"中國(guó)"inDcountryTrue>>>“德國(guó)"inDcountryFalse4.字典類(lèi)型及其操作與其他組合類(lèi)型一樣,字典可以通過(guò)for…in語(yǔ)句對(duì)其元素進(jìn)行遍歷,基本語(yǔ)法結(jié)構(gòu)如下:for <變量名>in<字典名>:
語(yǔ)句塊>>>Dcountry={"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}>>>forkeyinDcountry:print(key)中國(guó)美國(guó)法國(guó)4.字典類(lèi)型及其操作for循環(huán)返回的變量名是字典的索引值,如果需要獲得鍵對(duì)應(yīng)的值,可以在語(yǔ)句塊中通過(guò)get()方法獲得。>>>forkinDcountry:
print("鍵和值分別是:{}和{}".format(k,Dcountry.get(k)))鍵和值分別是:中國(guó)和北京鍵和值分別是:美國(guó)和華盛頓鍵和值分別是:法國(guó)和巴黎4.字典類(lèi)型及其操作實(shí)例:使用字典實(shí)現(xiàn)英文詞頻統(tǒng)計(jì)編寫(xiě)Python程序接受一段字符串,統(tǒng)計(jì)在該字符串中每個(gè)單詞出現(xiàn)的次數(shù),將單詞和出現(xiàn)的次數(shù)以鍵值對(duì)形式加入列表中4.字典類(lèi)型及其操作字典是一個(gè)鍵值對(duì)的集合,該集合以鍵為索引,一個(gè)鍵信息只對(duì)應(yīng)一個(gè)值信息,字典中元素以鍵信息為索引訪問(wèn);字典長(zhǎng)度是可變的,可以通過(guò)對(duì)鍵信息賦值實(shí)現(xiàn)增加或修改鍵值對(duì)。
總結(jié)4.字典類(lèi)型及其操作010203概述
序列類(lèi)型及其操作集合類(lèi)型及其操作目錄第66頁(yè)040506字典類(lèi)型及其操作實(shí)例:用類(lèi)創(chuàng)建智能車(chē)自動(dòng)巡航字典jieba庫(kù)07wordcloud庫(kù)在全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽百度智慧交通組比賽中,可以使用深度學(xué)習(xí)模型來(lái)控制小車(chē)前進(jìn)的方向,深度學(xué)習(xí)模型輸入圖像信息,輸出小車(chē)前進(jìn)的轉(zhuǎn)向角??梢杂靡粋€(gè)字典存儲(chǔ)信息,字典的鍵為圖片名稱(chēng),值為小車(chē)的轉(zhuǎn)向角度,如果同一圖片輸入多次,求多次輸入轉(zhuǎn)向角的平均值為該圖片最后的轉(zhuǎn)角值。編寫(xiě)程序使用鍵盤(pán)輸入模擬讀取圖片,生成圖片和轉(zhuǎn)向角度的鍵值對(duì)字典。5.14cruisedict.py5.實(shí)例:用類(lèi)創(chuàng)建智能車(chē)自動(dòng)巡航字典010203概述
序列類(lèi)型及其操作集合類(lèi)型及其操作目錄第68頁(yè)040506字典類(lèi)型及其操作實(shí)例:用類(lèi)創(chuàng)建智能車(chē)自動(dòng)巡航字典jieba庫(kù)07wordcloud庫(kù)06
jieba庫(kù)6.1jieba庫(kù)簡(jiǎn)介6.2《智能汽車(chē)創(chuàng)新發(fā)展戰(zhàn)略》
文本詞頻統(tǒng)計(jì)目錄第69頁(yè)對(duì)于一段英文文本,例如“Chinaisagreatcountry”,如果希望提取其中的單詞,用什么辦法?>>>
"Chinaisagreatcountry".split()['China','is','a','great','country']6.1Jieba庫(kù)簡(jiǎn)介對(duì)于一段中文文本,例如“中國(guó)是一個(gè)偉大的國(guó)家”,如果希望提取其中的詞組(不是字符),用什么辦法?>>>"中國(guó)是一個(gè)偉大的國(guó)家".split()['中國(guó)是一個(gè)偉大的國(guó)家']英文文本通過(guò)空格或標(biāo)點(diǎn)符號(hào)分隔,而中文單詞之間缺少分隔符,這是中文及類(lèi)似語(yǔ)言獨(dú)有的“分詞”問(wèn)題。jieba是Python中一個(gè)重要的第三方中文分詞函數(shù)庫(kù),需要通過(guò)pip指令安裝。:\>pipinstalljieba#或者pip3installjiebapipinstallrequests報(bào)錯(cuò)“‘pip’不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件”
解決辦法有如下兩種:cd進(jìn)入Python安裝目錄下的子..\Scripts子目錄下再安裝。配置系統(tǒng)環(huán)境變量,具體方面見(jiàn)文件”配置系統(tǒng)環(huán)境變量.pdf6.1Jieba庫(kù)簡(jiǎn)介jieba庫(kù)的常用函數(shù)6.1Jieba庫(kù)簡(jiǎn)介函數(shù)描述jieba.cut(s)精確模式,返回一個(gè)可迭代的數(shù)據(jù)類(lèi)型jieba.cut(s,cut_all=True)全模式,輸出文本s中所有可能單詞jieba.cut_for_search(s)搜索引擎模式,適合搜索引擎建立索引的分詞結(jié)果jieba.lcut(s)精確模式,返回一個(gè)列表類(lèi)型,建議使用jieba.lcut(s,cut_all=True)全模式,返回一個(gè)列表類(lèi)型,建議使用jieba.lcut_for_search(s)搜索引擎模式,返回一個(gè)列表類(lèi)型,建議使用jieba.add_word(w)向分詞詞典中增加新詞w>>>importjieba>>>jieba.cut
("全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽")<generatorobjectTokenizer.cutat0x02D0A540>#生成一個(gè)可迭代的數(shù)據(jù)類(lèi)型>>>
list(jieba.cut("全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽",))['全國(guó)','大學(xué)生','智能','汽車(chē)','競(jìng)賽']>>>jieba.cut("百度智慧交通創(chuàng)意賽",True)#輸出文本中所有可能詞組<generatorobjectTokenizer.cutat0x02D0A540>>>>list(jieba.cut("全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽",True))['全國(guó)','國(guó)大','大學(xué)','大學(xué)生','學(xué)生','智能','汽車(chē)','競(jìng)賽']>>>list(jieba.cut_for_search("全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽"))['全國(guó)','大學(xué)','學(xué)生','大學(xué)生','智能','汽車(chē)','競(jìng)賽']6.1Jieba庫(kù)簡(jiǎn)介>>>importjieba>>>
jieba.lcut("全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽")['全國(guó)','大學(xué)生','智能','汽車(chē)','競(jìng)賽']>>>jieba.lcut("全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽",cut_all=True)['全國(guó)','國(guó)大','大學(xué)','大學(xué)生','學(xué)生','智能','汽車(chē)','競(jìng)賽']>>>jieba.lcut_for_search("全國(guó)大學(xué)生智能汽車(chē)競(jìng)賽")['全國(guó)','大學(xué)','學(xué)生','大學(xué)生','智能','汽車(chē)','競(jìng)賽']6.1Jieba庫(kù)簡(jiǎn)介>>>num_list=[6,8,4,1,10]>>>print(num_list)[6,8,4,1,10]>>>num_list.sort()>>>num_list[1,4,6,8,10]>>>L=[('b',6),('a',1),('c',3),('d',4)]>>>L.sort()>>>L[('a',1),('b',6),('c',3),('d',4)]>>L.sort(key=lambdax:x[1])>>>L[('a',1),('c',3),('d',4),('b',6)]>>L.sort(key=lambdax:x[0])>>>L[('a',1),('b',6),('c',3),('d',4)]sort()函數(shù)提供了一個(gè)key參數(shù),這個(gè)參數(shù)是一個(gè)函數(shù),這個(gè)函數(shù)只能有一個(gè)返回值,其返回值用來(lái)進(jìn)行比較.key參數(shù)接受列表L里的每個(gè)元素的第二個(gè)參數(shù),根據(jù)第二個(gè)參數(shù)的排序,確定整體的排序。6.1Jieba庫(kù)簡(jiǎn)介>>>counts={"汽車(chē)":20,"發(fā)展":10,"智能":23,"基礎(chǔ)":8}>>>items=list(counts.items())>>>items[('汽車(chē)',20),('發(fā)展',10),('智能',23),('基礎(chǔ)',8)]>>>items.sort()>>>items[('發(fā)展',10),('基礎(chǔ)',8),('智能',23),('汽車(chē)',20)]>>>items.sort(key=lambdax:x[1])>>>items[('基礎(chǔ)',8),('發(fā)展',10),('汽車(chē)',20),('智能',23)]>>>items.sort(key=lambdax:x[1],reverse=True)>>>items[('智能',23),('汽車(chē)',20),('發(fā)展',10),('基礎(chǔ)',8)]6.1Jieba庫(kù)簡(jiǎn)介06
jieba庫(kù)6.1jieba庫(kù)簡(jiǎn)介6.2“智能汽車(chē)創(chuàng)新發(fā)展戰(zhàn)略”
文本詞頻統(tǒng)計(jì)目錄第77頁(yè)在很多情況下,會(huì)遇到這樣的問(wèn)題:對(duì)于一篇給定文章,希望統(tǒng)計(jì)其中多次出現(xiàn)的詞語(yǔ),進(jìn)而概要分析文章的內(nèi)容,這個(gè)問(wèn)題的解決可用于對(duì)網(wǎng)絡(luò)信息進(jìn)行自動(dòng)檢索和歸檔。在信息爆炸時(shí)代,這種歸檔或分類(lèi)十分有必要,這就是“詞頻統(tǒng)計(jì)”問(wèn)題。文本詞頻統(tǒng)計(jì)6.2“智能汽車(chē)創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計(jì)
給定”智能汽車(chē)創(chuàng)新發(fā)展戰(zhàn)略.txt”,統(tǒng)計(jì)其高頻詞第一步:需要引用jieba庫(kù)對(duì)文本進(jìn)行分詞處理。
words=jieba.lcut(txt)第二步:對(duì)分詞進(jìn)行計(jì)數(shù)第三走:對(duì)分詞的統(tǒng)計(jì)值從高到低進(jìn)行排序6.2“智能汽車(chē)創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計(jì)6.2“智能汽車(chē)創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計(jì)>>>
智能94汽車(chē)86發(fā)展33基礎(chǔ)25建設(shè)23安全22產(chǎn)業(yè)21體系21加強(qiáng)20完善19應(yīng)用17系統(tǒng)17開(kāi)展16能力16企業(yè)166.2“智能汽車(chē)創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計(jì)010203概述
序列類(lèi)型及其操作集合類(lèi)型及其操作目錄第82頁(yè)040506字典類(lèi)型及其操作實(shí)例:用類(lèi)創(chuàng)建智能車(chē)自動(dòng)巡航字典jieba庫(kù)07wordcloud庫(kù)07
wordcloud庫(kù)7.1wordcloud庫(kù)簡(jiǎn)介7.2“二十大報(bào)告”詞云
目錄第83頁(yè)wordcloud是優(yōu)秀的詞云展示第三方庫(kù)
詞云以詞語(yǔ)為基本單位,直觀和藝術(shù)地展示文本《交通強(qiáng)國(guó)綱要》詞云7.1wordcloud庫(kù)簡(jiǎn)介wordcloud庫(kù)的安裝wordcloud庫(kù)可通過(guò)pip指令安裝。:\>pipinstallwordcloud
#或者pip3installwordcloud7.1wordcloud庫(kù)簡(jiǎn)介wordcloud庫(kù)把詞云當(dāng)作一個(gè)WordCloud對(duì)象wordcloud.WordCloud()代表一個(gè)文本對(duì)應(yīng)的詞云可以根據(jù)文本中詞語(yǔ)出現(xiàn)的頻率等繪制詞云詞云的繪制形狀、尺寸和顏色都可以設(shè)定7.1wordcloud庫(kù)簡(jiǎn)介wordcloud庫(kù)常用方法w=wordcloud.WordCloud()方法描述w.generate(txt)向WordCloud對(duì)象w中加載文本txt
>>>w.generate("Taketimewhentimecomeslesttimestealaway")w.to_file(filename)將詞云輸出為圖像文件,.png或.jpg格式
>>>w.to_file("outfile.png")7.1wordcloud庫(kù)簡(jiǎn)介-步驟1:配置對(duì)象參數(shù)-步驟2:加載詞云文本-步驟3:輸出詞云文件importwordcloudc=wordcloud.WordCloud()c.generate("Taketimewhentimecomeslesttimestealaway")c.to_file("pywordcloud.png")7.1wordcloud庫(kù)簡(jiǎn)介wordcloud庫(kù)詞云生成步驟文本詞云①分隔:以空格分隔單詞②統(tǒng)計(jì):單詞出現(xiàn)次數(shù)并過(guò)濾③字體:根據(jù)統(tǒng)計(jì)配置字號(hào)④布局:顏色環(huán)境尺寸"Taketimewhentimecomeslesttimestealaway"7.1wordcloud庫(kù)簡(jiǎn)介配置對(duì)象參數(shù)w=wordcloud.WordCloud(<參數(shù)>)參數(shù)描述width指定詞云對(duì)象生成圖片的寬度,默認(rèn)400像素
>>>w=wordcloud
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025上海市合同法新規(guī)企業(yè)有權(quán)對(duì)員工罰款
- 2025合同變更與合同終止的區(qū)別
- 2025策略:深入剖析合同中排除不必要裝修項(xiàng)目的方法
- 2025電工設(shè)備購(gòu)銷(xiāo)合同范本
- 2025年南昌住房出租合同
- 2025現(xiàn)代風(fēng)格房屋租賃合同
- 2025【上海市勞動(dòng)合同參考模板】上海市勞動(dòng)合同條款
- 2025簡(jiǎn)易合同保管協(xié)議
- 2025個(gè)體投資者股權(quán)投資合同范本
- 2025標(biāo)準(zhǔn)家庭裝修合同模板
- 實(shí)驗(yàn)室安全自查表樣表
- 外賣(mài)食物中毒起訴書(shū)
- 《機(jī)械設(shè)計(jì)基礎(chǔ)》復(fù)習(xí)備考題庫(kù)(含答案)
- 安全生產(chǎn)責(zé)任書(shū)安全制度
- xk5036數(shù)控立式銑床總體及橫向進(jìn)給傳動(dòng)機(jī)構(gòu)設(shè)計(jì)論文大學(xué)本科畢業(yè)論文
- 小學(xué)五六年級(jí)青春期女生健康心理講座PPT
- 基于模型預(yù)測(cè)控制的無(wú)人駕駛車(chē)輛軌跡跟蹤控制算法研究共3篇
- 空冷島空冷機(jī)組管束更換施工方案
- 2023年大學(xué)生數(shù)學(xué)競(jìng)賽天津市試題參考及答案
- JJG 644-2003振動(dòng)位移傳感器
- 藥品使用監(jiān)督檢查記錄表
評(píng)論
0/150
提交評(píng)論