Python深度學(xué)習(xí)及智能車競賽實踐 課件 5-組合數(shù)據(jù)類型_第1頁
Python深度學(xué)習(xí)及智能車競賽實踐 課件 5-組合數(shù)據(jù)類型_第2頁
Python深度學(xué)習(xí)及智能車競賽實踐 課件 5-組合數(shù)據(jù)類型_第3頁
Python深度學(xué)習(xí)及智能車競賽實踐 課件 5-組合數(shù)據(jù)類型_第4頁
Python深度學(xué)習(xí)及智能車競賽實踐 課件 5-組合數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第五章組合數(shù)據(jù)類型Python深度學(xué)習(xí)及智能車競賽實踐010203概述序列類型及其操作集合類型及其操作目錄第2頁040506字典類型及其操作實例:用類創(chuàng)建智能車自動巡航字典jieba庫07wordcloud庫010203概述序列類型及其操作集合類型及其操作目錄第3頁040506字典類型及其操作實例:用類創(chuàng)建智能車自動巡航字典jieba庫07wordcloud庫計算機不僅需要對單個變量表示的數(shù)據(jù)進行處理,更多情況,計算機需要對一組數(shù)據(jù)進行批量處理。一些例子:給定一組數(shù)據(jù)集的標(biāo)簽值{car,truck,bus,people,bicycle},統(tǒng)計數(shù)據(jù)集中每一類標(biāo)簽的數(shù)量;給定一段車輛行駛的數(shù)據(jù),統(tǒng)計該段數(shù)據(jù)中加速狀態(tài)所占的比例;智能車競賽所用攝像頭采集到了產(chǎn)生了很多組圖片數(shù)據(jù),對這些圖片數(shù)據(jù)進行分析。1.概述

組合數(shù)據(jù)類型能夠?qū)⒍鄠€同類型或不同類型的數(shù)據(jù)組織起來,通過單一的表示使數(shù)據(jù)操作更有序更容易;根據(jù)數(shù)據(jù)之間的關(guān)系,組合數(shù)據(jù)類型可以分為三類:1.序列類型2.集合類型3.映射類型1.概述組合數(shù)據(jù)類型序列類型集合類型映射類型集合(set)字符串(str)元組(tuple)列表(list)字典(dict)是一個元素向量,元素之間存在先后關(guān)系,通過序號訪問,元素之間不排他。是一個元素集合,元素之間無序,相同元素在集合中唯一存在。是“鍵-值”數(shù)據(jù)項的組合,每個元素是一個鍵值對,表示為(key,value)。1.概述010203概述

序列類型及其操作集合類型及其操作目錄第7頁040506字典類型及其操作實例:用類創(chuàng)建智能車自動巡航字典jieba庫07wordcloud庫序列類型元素之間存在先后關(guān)系,通過序號訪問,當(dāng)需要訪問序列中某特定值時,只需要通過下標(biāo)標(biāo)出即可,所有序列類型使用相同的索引體系,即正向遞增和反向遞減序號。序列元素之間存在順序關(guān)系,可以存在相同數(shù)值但位置不同的元素。反向遞減序號正向遞增序號cartruckbuspedestrianbicycle2.序列類型及其操作序列類型6個通用操作符操作符及應(yīng)用描述xins如果x是序列s的元素,返回True,否則返回Falsexnotins如果x是序列s的元素,返回False,否則返回Trues+t連接兩個序列s和ts*n或n*s將序列s復(fù)制n次s[i]索引,返回s中的第i個元素,i是序列的序號s[i:j]

或s[i:j:k]切片,返回序列s中第i到j(luò)以k為步長的元素子序列2.序列類型及其操作2.序列類型及其操作>>>

ls=["python",123,

"競賽"]>>>

ls[::-1]['python',123,'競賽']['競賽',123,'python']['nohtyp',321,'競賽'][321,'競賽','nohtyp']

ABCD函數(shù)和方法描述len(s)返回序列s的長度,即元素個數(shù)min(s)返回序列s的最小元素,s中元素需要可比較max(s)返回序列s的最大元素,s中元素需要可比較s.index(x)或s.index(x,i,j)返回序列s從i開始到j(luò)位置中第一次出現(xiàn)元素x的位置s.count(x)返回序列s中出現(xiàn)x的總次數(shù)序列類型5個通用函數(shù)和方法2.序列類型及其操作>>>ls=["python",123,

"競賽"]>>>

len(ls)3>>>s="vehicle100">>>max(s)'v'序列類型操作實例2.序列類型及其操作02序列類型及其操作2.1元組類型2.2列表類型目錄第13頁元組是一種序列類型,一旦創(chuàng)建就不能被修改使用小括號()或tuple()創(chuàng)建,元素間用逗號分隔可以使用或不使用小括號2.1元組類型>>>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元組類型'truck''car''bus''vans'ABCD

元組類型在表達固定數(shù)據(jù)項、函數(shù)多返回值、多變量同步賦值、循環(huán)遍歷等情況下十分有用。>>>deffunc(n):

#函數(shù)多返回值returnn,n**5>>>a,b=‘truck',‘car'#多變量同步賦值>>>a,b=(b,a)#多變量同步賦值,括號可省略>>>importmath>>>forx,yin((1,2),(3,7),(4,6)):

#循環(huán)遍歷print(math.hypot(x,y))#求多個坐標(biāo)值到原點的距離2.1元組類型02序列類型及其操作2.1元組類型2.2列表類型目錄第17頁列表是一種序列類型,創(chuàng)建后可以隨意被修改;使用方括號[]或list()創(chuàng)建,元素間用逗號“,”

分隔;列表中各元素類型可以不同,無長度限制。2.2列表類型>>>

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'}]]列表用中括號([])表示,也可以通過list()函數(shù)將元組或字符串轉(zhuǎn)化成列表。直接使用list()函數(shù)會返回一個空列表。索引是列表的基本操作,用于獲得列表的一個元素,使用[]作為索引操作符。>>>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列表類型['全','國','大','學(xué)','生','智','能','汽','車','競','賽']['我','來','啦']['全','國','大','學(xué)','生','智','能','汽','車','競','賽','我','來','啦']['*','*','*','*','*'][1,2,1,2,1,2,1,2,1,2]列表數(shù)據(jù)結(jié)構(gòu)支持通過列表的組合生成新列表,通過“+”運算符實現(xiàn)列表的拼接,通過“*”運算符實現(xiàn)列表的復(fù)制。2.2列表類型與整數(shù)和字符串不同,列表要處理一組數(shù)據(jù),因此,列表必須通過顯式的數(shù)據(jù)賦值才能生成,簡單將一個列表賦值給另一個列表不會生成新的列表對象。>>>ls=[125,“Vehicle",10.1]#用數(shù)據(jù)賦值產(chǎn)生列表ls>>>lt=ls#lt是ls所對應(yīng)數(shù)據(jù)的引用,lt并不包含真實數(shù)據(jù)>>>ls[0]=0>>>lt[0,‘Vehicle',10.1]2.2列表類型[125,"Vehicle",10.1]lslt由于列表屬于序列類型,所以列表也支持成員關(guān)系操作符(in)、長度計算函數(shù)(len())、分片([])、遍歷等操作。列表可以同時使用正向遞增序號和反向遞減序號進行元素值索引,可以采用標(biāo)準的比較操作符(<、<=、==、!=、>=、>)進行比較,列表的比較實際上是單個數(shù)據(jù)項的逐個比較。2.2列表類型列表的遍歷與元組一樣,列表可以通過for…in語句對其元素進行遍歷,基本語法結(jié)構(gòu)如下:for<任意變量名>in<列表名>:

語句塊

2.2列表類型ls1=[100,"Vehicle",'bicycle',300]ls2=[x*2forxinls1]print(ls2)[200,'VehicleVehicle','bicyclebicycle',600]列表的遍歷2.2列表類型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

切片是列表的基本操作,用于獲得列表的一個片段,即獲得一個或多個元素。切片后的結(jié)果也是列表類型,切片有兩種使用方式:<列表或列表變量>[N:M]或<列表或列表變量>[N:M:K]

<列表或列表變量>[N:M]:獲取列表類型從N到M(不包含M)的元素組成新的列表。2.2列表類型列表的切片<列表或列表變量>[N:M:K]:切片獲取列表類型從N到M(不包含M)以K為步長所對應(yīng)元素組成的列表。當(dāng)N不存在時,缺省值為0,從第一個元素開始截??;當(dāng)M不存在時,截取到最后一個元素;

當(dāng)M<=N時,截取到的是空列表。當(dāng)K不存在時,切片獲取列表類型從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列表類型列表類型繼承序列類型特點,有一些通用的操作函數(shù)

操作符描述len(ls)列表ls的元素個數(shù)(長度)min(ls)列表ls中的最小元素max(ls)列表ls中的最大元素list(x)將x轉(zhuǎn)變成列表類型>>ls=[100,"Vehicle",'bicycle',300]

>>>len(ls)4>>>lt=[?

vans",[100,"Vehicle",'bicycle',[1,30]]]>>>len(lt)22.2列表類型列表的操作方法函數(shù)或方法描述ls.append(x)在列表ls最后增加一個元素xls.clear()刪除ls中所有元素ls.copy()生成一個新列表,復(fù)制ls中所有元素ls.insert(i,x)在列表ls第i位置增加元素xls.pop(i)將列表ls中第i項元素取出并刪除該元素ls.remove(x)將列表中出現(xiàn)的第一個元素x刪除ls.reverse()列表ls中元素反轉(zhuǎn)2.2列表類型請分析下面程序輸出結(jié)果2.2列表類型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列表類型[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列表類型列表的操作方法-增加元素TrueTrueFalseTrueTraceback(mostrecentcalllast):File"D:\5\5.7compare.py",line7,in<module>print(list0>=456)#'>='不支持不同類型對象的比較TypeError:'>='notsupportedbetweeninstancesof'list'and'int'2.2列表類型列表的操作方法-比較大小可以使用Python保留字del對列表元素或片段進行刪除,使用方法如下:del<列表變量>[<索引序號>]或del<列表變量>[<索引起始>:<索引結(jié)束>]>>>lt=[100,"Vehicle",'bicycle',300]>>>dellt[1]>>>print(lt)[100,'bicycle',300]>>>dellt[1:]>>>print(lt)[100]2.2列表類型列表的操作方法-del列表在實現(xiàn)基本數(shù)據(jù)統(tǒng)計時發(fā)揮了重要作用:列表是一個動態(tài)長度的數(shù)據(jù)結(jié)構(gòu),可以根據(jù)需求增加或減少元素;列表的一系列方法或操作符為計算提供了簡單的元素運算手段;列表提供了對每個元素的簡單訪問方式及所有元素的遍歷方式。

2.2列表類型列表是一個十分靈活的數(shù)據(jù)結(jié)構(gòu),它具有處理任意長度、混合類型的能力,并提供了豐富的基礎(chǔ)操作符和方法。當(dāng)程序需要使用組合數(shù)據(jù)類型管理批量數(shù)據(jù)時,請盡量使用列表類型??偨Y(jié)010203概述

序列類型及其操作集合類型及其操作目錄第35頁040506字典類型及其操作實例:用類創(chuàng)建智能車自動巡航字典jieba庫07wordcloud庫集合類型與數(shù)學(xué)中集合的概念一致,是包含0個或多個數(shù)據(jù)項的無序組合。集合中元素不可重復(fù),元素類型只能是固定數(shù)據(jù)類型,例如:整數(shù)、浮點數(shù)、字符串、元組等,列表、字典和集合類型本身都是可變數(shù)據(jù)類型,不能作為集合的元素。3.集合類型及其操作{}和

set()函數(shù)可以用于生成集合,集合用大括號({})表示。由于集合元素是無序的,集合的輸出效果與定義順序可以不一致。>>>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.集合類型及其操作由于集合元素獨一無二,使用集合類型能夠過濾掉重復(fù)元素;由于集合是無序組合,它沒有索引和位置的概念,不能切片;集合中元素可以動態(tài)增加或刪除。{'a','l','b'}{1,2,3}3.集合類型及其操作集合類型有4個常用操作符,交集(&)、并集(|)、差集(-)、補集(^),操作邏輯與數(shù)學(xué)定義相同。3.集合類型及其操作操作符描述A-B返回一個新集合,包括在集合A中但不在集合B中的元素A&B返回一個新集合,包括同時在集合A和B中的元素A^B返回一個新集合,包括集合A和B中元素,但不包括同時在其中的元素A|B返回一個新集合,包括集合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)過如下數(shù)學(xué)操作運算后的結(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.集合類型及其操作集合類型常用的操作函數(shù)(或方法)3.集合類型及其操作函數(shù)或方法描述S.add(x)如果數(shù)據(jù)項x不在集合S中,將x增加到SS.clear()移除S中所有數(shù)據(jù)項S.remove(x)如果x在集合S中,移除該元素;len(S)返回集合S元素個數(shù)xinS如果x是S的元素,返回True,否則返回FalsexnotinS如果x不是S的元素,返回True,否則返回FalseAfterbusberomoved,set0is{'truck'}Afterbusbediscarded,set1is{'truck'}Afterbusbediscardedagain,set1is{'truck'}Afteroneelementbepopped,set2is{'bus'}Afterset3becleared,set3isset()3.集合類型及其操作集合主要用于三個場景:成員關(guān)系測試、元素去重和刪除數(shù)據(jù)項:集合類型與其他類型最大的不同在于它不包含重復(fù)元素,因此,當(dāng)需要對一維數(shù)據(jù)進行去重或進行數(shù)據(jù)重復(fù)處理時,一般用集合來完成。>>>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ù)據(jù)項print(newtup)('bus','truck','bicycle','pedestrain')3.集合類型及其操作集合使用{}和set()函數(shù)創(chuàng)建集合間操作:交(&)、并(|)、差(-)、補(^)、比較(>=<)集合類型方法:.add()、.remove()、.pop()等集合類型主要應(yīng)用于:包含關(guān)系比較、數(shù)據(jù)去重總結(jié)3.集合類型及其操作010203概述

序列類型及其操作集合類型及其操作目錄第45頁040506字典類型及其操作實例:用類創(chuàng)建智能車自動巡航字典jieba庫07wordcloud庫字典類型屬于映射類型,映射類型是“鍵-值”數(shù)據(jù)項的組合,每個元素是一個鍵值對,即元素是(key,value),元素之間是無序的。鍵值對(key,value)是一種二元關(guān)系。在Python中,映射類型主要以字典(dict)體現(xiàn)。CarColor={“1號賽車”:“黃色”,“2號賽車”:“黑色”}1號賽車2號賽車黑色紅色白色黃色1號賽車:黃色2號賽車:黑色4.字典類型及其操作映射類型是序列類型的一種擴展。在序列類型中,采用從0開始的正向遞增序號或者-1開始的反向遞減序號進行具體元素值的索引。而映射類型則用“鍵”去索引具體的“值”。

鍵(key)表示一個屬性,也可以理解為一個類別或項目,值(value)是屬性的內(nèi)容,鍵值對刻畫了一個屬性和它的值。鍵值對將映射關(guān)系結(jié)構(gòu)化,用于存儲和表達。4.字典類型及其操作CarColor={“1號賽車”:“黃色”,“2號賽車”:“黑色”}“鍵值對”是組織數(shù)據(jù)的一種重要方式,廣泛應(yīng)用在Web系統(tǒng)中。鍵值對的基本思想是將“值”信息關(guān)聯(lián)一個“鍵”信息,進而通過鍵信息查找對應(yīng)值信息,這個過程叫映射。Python語言中通過字典類型實現(xiàn)映射。Python語言中的字典可以通過大括號({})建立,建立模式如下:

{<鍵1>:<值1>,<鍵2>:<值2>,…,<鍵n>:<值n>}

其中,鍵和值通過冒號連接,不同鍵值對通過逗號隔開。4.字典類型及其操作字典打印出來的順序與創(chuàng)建之初的順序可能不同,這不是錯誤。字典類型也具有和集合類似的性質(zhì),各元素之間,即鍵值對之間沒有順序且不能重復(fù)。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>print(Dcountry){'中國':'北京','法國':'巴黎','美國':'華盛頓'}4.字典類型及其操作字典元素“鍵值對”中鍵是值的索引,因此,可以直接利用鍵值對關(guān)系索引元素,通過鍵索引值,并可以通過鍵修改值。字典中鍵值對的訪問模式如下,采用中括號格式: <值>=<字典變量>[<鍵>]>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry["中國"]'北京‘>>>Dcountry["中國"]='大北京'>>>print(Dcountry){'中國':'大北京','法國':'巴黎','美國':'華盛頓'}4.字典類型及其操作通過中括號可以增加新的元素

直接使用{}可以創(chuàng)建一個空的字典,并通過中括號[]向其增加元素。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry["英國"]="倫敦">>>print(Dcountry){'中國':'北京','法國':'巴黎','美國':'華盛頓','英國':'倫敦'}>>>Dp={}>>>Dp['2^10']=1024>>>print(Dp){'2^10':1024}4.字典類型及其操作字典類型有一些通用的操作函數(shù)>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>len(Dcountry)34.字典類型及其操作操作符描述len(d)字典d的元素個數(shù)(長度)min(d)字典d中的最小元素max(d)字典d中的最大元素dict()生成一個空字典dict()函數(shù)用于生成一個空字典,作用和{}一致。min(d)和max(d)分別返回字典d中最小或最大索引值。>>>>d={"201801":"小明","201802":"小紅","201803":"小白”}>>>min(d)'201801'>>>max(d)'201803'>>>d=dict()>>>print(d){}4.字典類型及其操作字典類型通用的操作方法4.字典類型及其操作操作符描述d.keys()返回所有的鍵信息d.values()返回所有的值信息d.items()返回所有的鍵值對d.get(key,default)鍵存在則返回相應(yīng)值,否則返回默認值d.pop(key,default)鍵存在則返回相應(yīng)值,同時刪除鍵值對,否則返回默認值d.popitem()隨機從字典中取出一個鍵值對,以元組(key,value)形式返回d.clear()刪除所有的鍵值對d.keys()返回字典中的所有鍵信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類型dict_keys,專用于表示字典的鍵,如果希望更好的使用返回結(jié)果,可以將其轉(zhuǎn)換為列表類型。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.keys()dict_keys(['中國','美國','法國'])>>>type(Dcountry.keys())<class'dict_keys'>>>>list(Dcountry.keys())['中國','美國','法國']4.字典類型及其操作d.values()返回字典中的所有值信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類型dict_values。如果希望更好的使用返回結(jié)果,可以將其轉(zhuǎn)換為列表類型。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.values()dict_values(['北京','華盛頓','巴黎'])>>>type(Dcountry.values())<class'dict_values'>>>>list(Dcountry.values())['北京','華盛頓','巴黎']4.字典類型及其操作d.items()返回字典中的所有鍵值對信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類型dict_items。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.items()dict_items([('中國','北京'),('美國','華盛頓'),('法國','巴黎')])>>>type(Dcountry.items())<class'dict_items'>>>>list(Dcountry.items())[('中國','北京'),('美國','華盛頓'),('法國','巴黎')]4.字典類型及其操作d.get(key,default)根據(jù)鍵信息查找并返回值信息,如果key存在則返回相應(yīng)值,否則返回默認值,第二個元素default可以省略,如果省略則默認值為空。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.get('美國','悉尼')#'美國'在字典中存在'華盛頓'>>>Dcountry.get('澳大利亞','悉尼')#'澳大利亞'在字典中不存在'悉尼'4.字典類型及其操作d.pop(key,default)根據(jù)鍵信息查找并取出值信息,如果key存在則返回相應(yīng)值,否則返回默認值,第二個元素default可以省略,如果省略則默認值為空。相比d.get()方法,d.pop()在取出相應(yīng)值后,將從字典中刪除對應(yīng)的鍵值對。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.pop(“中國”,“首爾")'北京'>>>Dcountry.pop(“韓國”,“首爾")‘首爾’>>>Dcountry{'美國':'華盛頓','法國':'巴黎'}4.字典類型及其操作d.popitem()隨機從字典中取出一個鍵值對,以元組(key,value)形式返回,取出后從字典中刪除這個鍵值對。d.clear()刪除字典中所有鍵值對。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.popitem()('法國','巴黎')>>>Dcountry{'中國':'北京','美國':'華盛頓'}>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>country.clear()>>>Dcountry[]4.字典類型及其操作如果希望刪除字典中某一個元素,可以使用Python保留字del。字典類型也支持保留字in,用來判斷一個鍵是否在字典中。如果在則返回True,否則返回False。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>delDcountry["美國"]>>>Dcountry{'中國':'北京','法國':'巴黎'}>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>"中國"inDcountryTrue>>>“德國"inDcountryFalse4.字典類型及其操作與其他組合類型一樣,字典可以通過for…in語句對其元素進行遍歷,基本語法結(jié)構(gòu)如下:for <變量名>in<字典名>:

語句塊>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>forkeyinDcountry:print(key)中國美國法國4.字典類型及其操作for循環(huán)返回的變量名是字典的索引值,如果需要獲得鍵對應(yīng)的值,可以在語句塊中通過get()方法獲得。>>>forkinDcountry:

print("鍵和值分別是:{}和{}".format(k,Dcountry.get(k)))鍵和值分別是:中國和北京鍵和值分別是:美國和華盛頓鍵和值分別是:法國和巴黎4.字典類型及其操作實例:使用字典實現(xiàn)英文詞頻統(tǒng)計編寫Python程序接受一段字符串,統(tǒng)計在該字符串中每個單詞出現(xiàn)的次數(shù),將單詞和出現(xiàn)的次數(shù)以鍵值對形式加入列表中4.字典類型及其操作字典是一個鍵值對的集合,該集合以鍵為索引,一個鍵信息只對應(yīng)一個值信息,字典中元素以鍵信息為索引訪問;字典長度是可變的,可以通過對鍵信息賦值實現(xiàn)增加或修改鍵值對。

總結(jié)4.字典類型及其操作010203概述

序列類型及其操作集合類型及其操作目錄第66頁040506字典類型及其操作實例:用類創(chuàng)建智能車自動巡航字典jieba庫07wordcloud庫在全國大學(xué)生智能汽車競賽百度智慧交通組比賽中,可以使用深度學(xué)習(xí)模型來控制小車前進的方向,深度學(xué)習(xí)模型輸入圖像信息,輸出小車前進的轉(zhuǎn)向角??梢杂靡粋€字典存儲信息,字典的鍵為圖片名稱,值為小車的轉(zhuǎn)向角度,如果同一圖片輸入多次,求多次輸入轉(zhuǎn)向角的平均值為該圖片最后的轉(zhuǎn)角值。編寫程序使用鍵盤輸入模擬讀取圖片,生成圖片和轉(zhuǎn)向角度的鍵值對字典。5.14cruisedict.py5.實例:用類創(chuàng)建智能車自動巡航字典010203概述

序列類型及其操作集合類型及其操作目錄第68頁040506字典類型及其操作實例:用類創(chuàng)建智能車自動巡航字典jieba庫07wordcloud庫06

jieba庫6.1jieba庫簡介6.2《智能汽車創(chuàng)新發(fā)展戰(zhàn)略》

文本詞頻統(tǒng)計目錄第69頁對于一段英文文本,例如“Chinaisagreatcountry”,如果希望提取其中的單詞,用什么辦法?>>>

"Chinaisagreatcountry".split()['China','is','a','great','country']6.1Jieba庫簡介對于一段中文文本,例如“中國是一個偉大的國家”,如果希望提取其中的詞組(不是字符),用什么辦法?>>>"中國是一個偉大的國家".split()['中國是一個偉大的國家']英文文本通過空格或標(biāo)點符號分隔,而中文單詞之間缺少分隔符,這是中文及類似語言獨有的“分詞”問題。jieba是Python中一個重要的第三方中文分詞函數(shù)庫,需要通過pip指令安裝。:\>pipinstalljieba#或者pip3installjiebapipinstallrequests報錯“‘pip’不是內(nèi)部或外部命令,也不是可運行的程序或批處理文件”

解決辦法有如下兩種:cd進入Python安裝目錄下的子..\Scripts子目錄下再安裝。配置系統(tǒng)環(huán)境變量,具體方面見文件”配置系統(tǒng)環(huán)境變量.pdf6.1Jieba庫簡介jieba庫的常用函數(shù)6.1Jieba庫簡介函數(shù)描述jieba.cut(s)精確模式,返回一個可迭代的數(shù)據(jù)類型jieba.cut(s,cut_all=True)全模式,輸出文本s中所有可能單詞jieba.cut_for_search(s)搜索引擎模式,適合搜索引擎建立索引的分詞結(jié)果jieba.lcut(s)精確模式,返回一個列表類型,建議使用jieba.lcut(s,cut_all=True)全模式,返回一個列表類型,建議使用jieba.lcut_for_search(s)搜索引擎模式,返回一個列表類型,建議使用jieba.add_word(w)向分詞詞典中增加新詞w>>>importjieba>>>jieba.cut

("全國大學(xué)生智能汽車競賽")<generatorobjectTokenizer.cutat0x02D0A540>#生成一個可迭代的數(shù)據(jù)類型>>>

list(jieba.cut("全國大學(xué)生智能汽車競賽",))['全國','大學(xué)生','智能','汽車','競賽']>>>jieba.cut("百度智慧交通創(chuàng)意賽",True)#輸出文本中所有可能詞組<generatorobjectTokenizer.cutat0x02D0A540>>>>list(jieba.cut("全國大學(xué)生智能汽車競賽",True))['全國','國大','大學(xué)','大學(xué)生','學(xué)生','智能','汽車','競賽']>>>list(jieba.cut_for_search("全國大學(xué)生智能汽車競賽"))['全國','大學(xué)','學(xué)生','大學(xué)生','智能','汽車','競賽']6.1Jieba庫簡介>>>importjieba>>>

jieba.lcut("全國大學(xué)生智能汽車競賽")['全國','大學(xué)生','智能','汽車','競賽']>>>jieba.lcut("全國大學(xué)生智能汽車競賽",cut_all=True)['全國','國大','大學(xué)','大學(xué)生','學(xué)生','智能','汽車','競賽']>>>jieba.lcut_for_search("全國大學(xué)生智能汽車競賽")['全國','大學(xué)','學(xué)生','大學(xué)生','智能','汽車','競賽']6.1Jieba庫簡介>>>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ù)提供了一個key參數(shù),這個參數(shù)是一個函數(shù),這個函數(shù)只能有一個返回值,其返回值用來進行比較.key參數(shù)接受列表L里的每個元素的第二個參數(shù),根據(jù)第二個參數(shù)的排序,確定整體的排序。6.1Jieba庫簡介>>>counts={"汽車":20,"發(fā)展":10,"智能":23,"基礎(chǔ)":8}>>>items=list(counts.items())>>>items[('汽車',20),('發(fā)展',10),('智能',23),('基礎(chǔ)',8)]>>>items.sort()>>>items[('發(fā)展',10),('基礎(chǔ)',8),('智能',23),('汽車',20)]>>>items.sort(key=lambdax:x[1])>>>items[('基礎(chǔ)',8),('發(fā)展',10),('汽車',20),('智能',23)]>>>items.sort(key=lambdax:x[1],reverse=True)>>>items[('智能',23),('汽車',20),('發(fā)展',10),('基礎(chǔ)',8)]6.1Jieba庫簡介06

jieba庫6.1jieba庫簡介6.2“智能汽車創(chuàng)新發(fā)展戰(zhàn)略”

文本詞頻統(tǒng)計目錄第77頁在很多情況下,會遇到這樣的問題:對于一篇給定文章,希望統(tǒng)計其中多次出現(xiàn)的詞語,進而概要分析文章的內(nèi)容,這個問題的解決可用于對網(wǎng)絡(luò)信息進行自動檢索和歸檔。在信息爆炸時代,這種歸檔或分類十分有必要,這就是“詞頻統(tǒng)計”問題。文本詞頻統(tǒng)計6.2“智能汽車創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計

給定”智能汽車創(chuàng)新發(fā)展戰(zhàn)略.txt”,統(tǒng)計其高頻詞第一步:需要引用jieba庫對文本進行分詞處理。

words=jieba.lcut(txt)第二步:對分詞進行計數(shù)第三走:對分詞的統(tǒng)計值從高到低進行排序6.2“智能汽車創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計6.2“智能汽車創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計>>>

智能94汽車86發(fā)展33基礎(chǔ)25建設(shè)23安全22產(chǎn)業(yè)21體系21加強20完善19應(yīng)用17系統(tǒng)17開展16能力16企業(yè)166.2“智能汽車創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計010203概述

序列類型及其操作集合類型及其操作目錄第82頁040506字典類型及其操作實例:用類創(chuàng)建智能車自動巡航字典jieba庫07wordcloud庫07

wordcloud庫7.1wordcloud庫簡介7.2“二十大報告”詞云

目錄第83頁wordcloud是優(yōu)秀的詞云展示第三方庫

詞云以詞語為基本單位,直觀和藝術(shù)地展示文本《交通強國綱要》詞云7.1wordcloud庫簡介wordcloud庫的安裝wordcloud庫可通過pip指令安裝。:\>pipinstallwordcloud

#或者pip3installwordcloud7.1wordcloud庫簡介wordcloud庫把詞云當(dāng)作一個WordCloud對象wordcloud.WordCloud()代表一個文本對應(yīng)的詞云可以根據(jù)文本中詞語出現(xiàn)的頻率等繪制詞云詞云的繪制形狀、尺寸和顏色都可以設(shè)定7.1wordcloud庫簡介wordcloud庫常用方法w=wordcloud.WordCloud()方法描述w.generate(txt)向WordCloud對象w中加載文本txt

>>>w.generate("Taketimewhentimecomeslesttimestealaway")w.to_file(filename)將詞云輸出為圖像文件,.png或.jpg格式

>>>w.to_file("outfile.png")7.1wordcloud庫簡介-步驟1:配置對象參數(shù)-步驟2:加載詞云文本-步驟3:輸出詞云文件importwordcloudc=wordcloud.WordCloud()c.generate("Taketimewhentimecomeslesttimestealaway")c.to_file("pywordcloud.png")7.1wordcloud庫簡介wordcloud庫詞云生成步驟文本詞云①分隔:以空格分隔單詞②統(tǒng)計:單詞出現(xiàn)次數(shù)并過濾③字體:根據(jù)統(tǒng)計配置字號④布局:顏色環(huán)境尺寸"Taketimewhentimecomeslesttimestealaway"7.1wordcloud庫簡介配置對象參數(shù)w=wordcloud.WordCloud(<參數(shù)>)參數(shù)描述width指定詞云對象生成圖片的寬度,默認400像素

>>>w=wordcloud

溫馨提示

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

最新文檔

評論

0/150

提交評論