Python數(shù)據(jù)分析及應用 課件 第5章組合數(shù)據(jù)類型_第1頁
Python數(shù)據(jù)分析及應用 課件 第5章組合數(shù)據(jù)類型_第2頁
Python數(shù)據(jù)分析及應用 課件 第5章組合數(shù)據(jù)類型_第3頁
Python數(shù)據(jù)分析及應用 課件 第5章組合數(shù)據(jù)類型_第4頁
Python數(shù)據(jù)分析及應用 課件 第5章組合數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

云南財經(jīng)大學信息學院Python數(shù)據(jù)分析及應用第5章組合數(shù)據(jù)類型目錄

5.1 列表類型5.2 元組類型5.3 集合類型5.4 字典類型5.5 jieba庫的使用5.6 wordcloud庫的使用知識目標:掌握Python中常見的組合數(shù)據(jù)類型(如列表、元組、集合、字典)的概念和特點。技能目標:掌握各種組合數(shù)據(jù)類型的創(chuàng)建、訪問、修改和操作方法。素質(zhì)目標:培養(yǎng)學生運用組合數(shù)據(jù)類型解決實際問題的能力,提高學生的編程思維和邏輯能力,培養(yǎng)良好的代碼規(guī)范和編程習慣。學習目標

在第二章中我們已經(jīng)對基本數(shù)據(jù)類型進行了介紹,在使用基本數(shù)據(jù)類型時我們發(fā)現(xiàn)該類型通常是單個值,如整數(shù)(int)、浮點數(shù)(float)、布爾值(bool)、字符串(str)等,它們不能再分解為更小的數(shù)據(jù)部分,在內(nèi)存中占據(jù)固定的空間。

在日常應用的環(huán)境中我們需要處理的數(shù)據(jù)有很多,如學生的成績列表、購物車中的商品列表、學生的學號和姓名的對應關系、配置文件中的參數(shù)和其對應的值等,這些數(shù)據(jù)由多個基本數(shù)據(jù)類型或其他組合數(shù)據(jù)類型組合而成,通常需要對其內(nèi)部的元素進行添加、刪除、修改等操作,內(nèi)部元素的存儲方式可能不同,且存儲空間大小不固定,這樣的數(shù)據(jù)類型我們無法用基本數(shù)據(jù)類型進行表達,為使Python能夠更方便、高效地處理復雜的數(shù)據(jù)結(jié)構(gòu),提出了滿足程序設計中對多種數(shù)據(jù)組織和操作的需求的組合數(shù)據(jù)類型。本章導讀5.1.1列表類型簡介在Python中,列表(List)是一種非常常用和靈活的組合數(shù)據(jù)類型。它是一個有序的、可修改的元素集合。這意味著列表中的元素有特定的順序,并且可以隨時添加、刪除或修改元素。列表可以容納不同類型的數(shù)據(jù),包括整數(shù)、浮點數(shù)、字符串、甚至其他列表或復雜的數(shù)據(jù)結(jié)構(gòu)。5.1列表類型實例5-1創(chuàng)建空列表:list0=[]實例5-2創(chuàng)建非空列表:list1=["YNUFE",17,1,6,"好學篤行,厚德致遠"]列表支持各種操作:增加元素、刪除元素、修改元素、切片操作5.1.2列表類型的操作(一)大規(guī)模生成列表在科學計算、物理模擬、金融建模、人工智能等領域,需要生成大量的隨機數(shù)據(jù)或按照特定規(guī)律生成的數(shù)據(jù)來進行模擬實驗。常用的大規(guī)模列表數(shù)據(jù)生成的方式有以下兩種。5.1列表類型1.使用普通循環(huán)生成1000個元素的列表list3=[]foriinrange(1000):

list3.append(i)2.使用列表推導式生成1000個元素的列表List4=[iforiinrange(1000)]列表推導式生成方法簡潔、可讀性高,通常能夠以更簡潔的方式表達創(chuàng)建列表的邏輯,使代碼更緊湊和易讀,列表推導式生成方法在底層的實現(xiàn)上進行了一些優(yōu)化,比普通循環(huán)方式效率更高實例5-3模擬生成擲1000次硬幣結(jié)果數(shù)據(jù),正面朝上標志為0,反面朝上標記為1,將結(jié)果數(shù)據(jù)存放入列表coin_list中。importrandom

coin_list=[random.choice([0,1])for_inrange(1000)]

print(coin_list)輸出:

[0,1,0,1,0,0,1,0,0,0,1,1,0,1,1,0,……大規(guī)模生成列表實例實例5-4模擬生成價格區(qū)間在15元至100元之間的1000種商品的價格,生成價格數(shù)據(jù)保留兩位小數(shù)點,將結(jié)果數(shù)據(jù)存放入列表prices_list中。importrandomprices_list=[round(random.uniform(15,100),2)for_inrange(1000)]print(prices_list)輸出:[18.57,45.45,87.37,75.56,87.21,98.49,……大規(guī)模生成列表實例(二)列表的訪問在Python中,列表和字符串都是序列類型的數(shù)據(jù),可以通過索引來訪問列表中的元素。列表的索引從0開始。常見的列表訪問方式有訪問單個元素、使用負數(shù)索引從列表尾部訪問元素、切片訪問,操作方式與字符串操作方式類似5.1.2列表類型的操作現(xiàn)定義列表list5=[11,22,33,44,55,66,77]1.索引訪問單個元素功能語句輸出結(jié)果訪問list5的第1個元素print(list5[0])11訪問list5的第3個元素print(list5[2])33訪問list5的倒數(shù)第1個元素print(list5[-1])77訪問list5的倒數(shù)第3個元素print(list5[-3])555.1.2列表類型的操作現(xiàn)定義列表list5=[11,22,33,44,55,66,77]2.切片訪問多個元素基本語法是list[start:end:step],其中:start(可選,默認為0):切片的起始位置索引。end(可選,默認為列表的長度):切片的結(jié)束位置索引(不包含該位置的元素)。step(可選,默認為1):切片的步長,表示每隔幾個元素取一個。功能語句輸出結(jié)果訪問list5的索引1到4的元素print(list5[1:4])[22,33,44]訪問list5的索引3開始到列表末尾的元素print(list5[3:])[44,55,66,77]訪問list5的從開頭到索引5的元素print(list5[:5])[11,22,33,44,55]訪問list5的索引1到7且步長為2的元素print(list5[1:7:2])[22,44,66]訪問整個list5列表的全部元素print(list5[:])[11,22,33,44,55,66,77]倒序訪問list5數(shù)據(jù)print(list5[::-1])[77,66,55,44,33,22,11](三)列表的其他操作5.1.2列表類型的操作1.修改列表中的元素在Python中,列表是一種可變的數(shù)據(jù)類型,可以直接修改列表中的元素。要修改列表中的元素,需要知道該元素的索引位置。通過索引,可以將新的值賦給對應的位置,從而實現(xiàn)對元素的修改。實例5-5在列表list5中要將數(shù)據(jù)44修改為88,我們要先確定元素44的索引,然后根據(jù)索引直接賦值修改list5=[11,22,33,44,55,66,77]list5[3]=88print(list5)輸出:

[11,22,33,88,55,66,77](三)列表的其他操作5.1.2列表類型的操作2.列表連接和復制列表之間可以使用“+”運算符和“*”運算符實現(xiàn)列表的連接和復制,通過連接和復制可以生成一個新的列表。實例5-6現(xiàn)有列表List6=["云南財經(jīng)大學","會計學院"]和列表list7=["2024級","會計學專業(yè)"],現(xiàn)將兩個列表連接后輸出顯示,同時復制list7列表內(nèi)容后輸出顯示List6=["云南財經(jīng)大學","會計學院"]list7=["2024級","會計學專業(yè)"]print(list6+list7)輸出:['云南財經(jīng)大學','會計學院','2024級','會計學專業(yè)'](三)列表的其他操作5.1.2列表類型的操作3.添加列表中的元素(1)append()append()方法用于在列表的末尾添加一個元素。這個方法操作簡單直接,只需要將要添加的元素作為參數(shù)傳遞給它即可。實例5-7在列表list5中添加元素88,并顯示添加后的內(nèi)容list5=[11,22,33,44,55,66,77]list5.append(88)print(list5)輸出:[11,22,33,44,55,66,77,88](三)列表的其他操作5.1.2列表類型的操作3.添加列表中的元素(2)extend()extend()則用于將一個可迭代對象(如另一個列表、元組、字符串等)的所有元素依次添加到當前列表的末尾實例5-8現(xiàn)有列表List6=["云南財經(jīng)大學","會計學院"]和列表list7=["2024級","會計學專業(yè)"],現(xiàn)將list7添加在list6后輸出顯示。list6=["云南財經(jīng)大學","會計學院"]list7=["2024級","會計學專業(yè)"]list6.extend(list7)print(list6)輸出:['云南財經(jīng)大學','會計學院','2024級','會計學專業(yè)'](三)列表的其他操作5.1.2列表類型的操作3.添加列表中的元素(3)insert()insert()能夠在指定的索引位置插入一個元素。需要提供兩個參數(shù),第一個是索引位置,第二個是要插入的元素。實例5-9在列表list5中的索引為3的位置插入元素88,并顯示插入后的內(nèi)容list5=[11,22,33,44,55,66,77]list5.insert(3,88)print(list5)輸出:[11,22,33,88,44,55,66,77](三)列表的其他操作5.1.2列表類型的操作4.移除列表中的元素(1)remove()remove()方法用于移除列表中指定值的第一個匹配項。該方法沒有返回值,但會直接在原列表上進行修改。該方法只會移除第一個匹配到的元素。實例5-10在列表list8中移除第一個33,并顯示移除后的內(nèi)容list8=[11,22,33,44,55,66,77,33,88]list8.remove(33)print(list8)輸出:[11,22,44,55,66,77,33,88](三)列表的其他操作5.1.2列表類型的操作4.移除列表中的元素(2)pop()pop()方法用于移除并返回列表中指定位置的元素。該方法會直接修改原列表。實例5-11在列表list8中移除最后一個元素,把移除的元素放到變量pop_val中,并顯示移除后的列表的內(nèi)容和pop_val的值。list8=[11,22,33,44,55,66,77,33,88]pop_val=list8.pop()print(list8)print(pop_val)輸出:[11,22,33,44,55,66,77,33]88實例5-12在列表list8中移除索引為3元素,把移除的元素放到變量pop_val中,并顯示移除后的列表的內(nèi)容和pop_val的值。list8=[11,22,33,44,55,66,77,33,88]pop_val=list8.pop(3)print(list8)print(pop_val)輸出:[11,22,33,55,66,77,33,88]44(三)列表的其他操作5.1.2列表類型的操作4.移除列表中的元素(3)deldel語句用于刪除對象。當用于刪除列表時,它可以根據(jù)索引刪除列表中的元素。實例5-13在列表list8中移除索引為4元素,并顯示移除后的列表的內(nèi)容。list8=[11,22,33,44,55,66,77,33,88]dellist8[4]print(list8)輸出:[11,22,33,44,66,77,33,88]實例5-14在列表list8中移除索引為2到5的元素,并顯示移除后的列表的內(nèi)容。list8=[11,22,33,44,55,66,77,33,88]dellist8[2:5]print(list8)輸出:[11,22,66,77,33,88](三)列表的其他操作5.1.2列表類型的操作5.嵌套列表嵌套列表指的是列表中的元素本身也是列表。嵌套列表可以用來表示矩陣、表格數(shù)據(jù)、樹結(jié)構(gòu)等復雜的多維數(shù)據(jù)結(jié)構(gòu)。list9=[[1,2,3],[4,5,6],[7,8,9]]list9就是一個3行3列的嵌套列表,表示了一個簡單的矩陣??梢酝ㄟ^多重索引訪問嵌套列表中的元素。要獲取list9中第二行第三列的元素,可以這樣寫:print(list9[1][2])輸出為:6嵌套列表在處理復雜的數(shù)據(jù)結(jié)構(gòu)和邏輯時非常有用,也可按二維表格形式處理數(shù)據(jù)。以下是一個表示學生成績的嵌套列表:stu=[["202305001212","李平",90,85,90],

["202305001345","張濤",80,75,80],

["202305001478","王程",85,95,92]]如果要查詢張濤的期末成績我們可以用以下語句:print(stu[1][4])輸出為:80(三)列表的其他操作5.1.2列表類型的操作5.嵌套列表實例5-15在列表stu中包括學生學號、姓名、平時成績、期中成績、期末成績,如果期末總評成績=平時成績*0.3+期中成績*0.3+期末成績*0.4,顯示每個同學的姓名及對應的期末總評成績。stu=[["202305001212","李平",90,85,90],

["202305001345","張濤",80,75,80],

["202305001478","王程",85,95,92]]foriinrange(0,3):print(stu[i][1],round(stu[i][2]*0.3+stu[i][3]*0.3+stu[i][4]*0.4,1))輸出:李平88.5張濤78.5王程90.8嵌套列表為組織和處理復雜的、多維的數(shù)據(jù)提供了一種有效的方式。但在使用時需要注意索引的正確性,以避免出現(xiàn)索引錯誤。5.2.1元組類型簡介元組是Python中的一種不可變序列類型,用圓括號括起來,元素之間通過逗號分隔。在應用中,元組一旦創(chuàng)建,其內(nèi)容不能修改,即無法添加、刪除或修改元素。這樣的特點使得元組在某些情況下非常有用。元組可以包含任何類型的數(shù)據(jù),包括數(shù)字、字符串、布爾值,甚至是其他元組或列表。5.2 元組類型創(chuàng)建元組的基本方式有幾種。最直接的方法是將多個數(shù)據(jù)項用逗號隔開,放在圓括號內(nèi)。例如tuple1=(1,2,3)tuple1是一個包含三個整數(shù)的元組。此外,還可以使用內(nèi)置的tuple()函數(shù)創(chuàng)建元組,該函數(shù)接受一個可迭代對象作為參數(shù),并將其轉(zhuǎn)換為元組。由于元組是不可變的,因此不能直接修改其內(nèi)容。但是,可以通過多種方法間接修改元組內(nèi)容。一種常見的方法是將元組轉(zhuǎn)換成列表,進行修改后再轉(zhuǎn)回元組。另一種方法是使用切片和拼接操作來生成新的元組,從而實現(xiàn)對原始元組的部分"修改"。在Python中,元組與列表相似,不同之處在于元組的元素不能修改,而列表的元素可以修改,元組使用小括號(),列表使用中括號[]。列表的訪問方式、連接復制方式等操作都可以用于對元組的操作。(一)元組的創(chuàng)建元組的創(chuàng)建很簡單,使用圓括號()直接創(chuàng)建或者使用tuple()函數(shù)創(chuàng)建,只需要在圓括號中添加元素,并使用逗號隔開即可。5.2.2 元組類型的操作1.使用()創(chuàng)建通過()創(chuàng)建元組后,使用=將它賦值給變量,格式如下:tuple2=('云南財經(jīng)大學','會計學院','2024級','會計學專業(yè)')print(tuple2)輸出為:('云南財經(jīng)大學','會計學院','2024級','會計學專業(yè)')如果元組只有一個元素,需要在元素后面加一個逗號,以表示它是一個元組。tuple3=(1)tuple4=(1,)print(tuple3)print(tuple4)print(type(tuple3))print(type(tuple4))輸出為:1(1,)<class'int’><class'tuple'>(一)元組的創(chuàng)建5.2.2 元組類型的操作2.使用tuple()函數(shù)創(chuàng)建元組我們除了可以使用()創(chuàng)建元組,還可以使用tuple()函數(shù)創(chuàng)建元組,但tuple()函數(shù)偏向于將某個類型轉(zhuǎn)換為元組。list1=["YNUFE",17,1,6,"好學篤行,厚德致遠"]tuple5=tuple(list1)print(list1)print(tuple5)print(type(list1))print(type(tuple5))輸出為:['YNUFE',17,1,6,'好學篤行,厚德致遠']('YNUFE',17,1,6,'好學篤行,厚德致遠')<class'list'><class'tuple'>(二)元組的訪問元組的訪問方式與列表的訪問方式一致,也是通過索引來訪問元組中的元素,索引從0開始。5.2.2 元組類型的操作功能描述執(zhí)行語句輸出結(jié)果訪問索引為0的元素print(tuple6[0])11訪問索引為2的元素print(tuple6[2])33訪問索引為-1的元素print(tuple6[-1])77訪問索引為-3的元素print(tuple6[-3])55訪問索引為9的元素print(tuple6[9])IndexError訪問索引1到4的元素print(tuple6[1:4])(22,33,44)訪問索引3開始到列表末尾的元素print(tuple6[3:])(44,55,66,77)訪問從列表開頭到索引5的元素print(tuple6[:5])(11,22,33,44,55)訪問索引1到7且步長為2的元素print(tuple6[1:7:2])(22,44,66)訪問整個列表的全部元素print(tuple6[:])(11,22,33,44,55,66,77)倒序訪問所有數(shù)據(jù)print(tuple6[::-1])(77,66,55,44,33,22,11)(三)列表和元組的對比列表和元組都是python中常用的序列類型,選擇使用元組還是列表取決于具體的需求和使用場景。如果數(shù)據(jù)是固定不變的,元組可能更合適;如果數(shù)據(jù)需要頻繁修改,列表則更方便。5.2.2 元組類型的操作

列表元組可

性列表是可變的,可以添加、刪除、修改元素元組是不可變的,創(chuàng)建后其元素不能被修改、添加或刪除創(chuàng)建方式列表使用方括號

[]

定義元組使用小括號

()

定義性

數(shù)據(jù)量大時性能優(yōu)于列表用

途列表適用于需要頻繁修改、添加或刪除元素的場景,比如動態(tài)數(shù)據(jù)元組常用于表示固定不變的數(shù)據(jù),如坐標、常量集合等存儲方式列表的存儲空間可能會因為元素的添加和刪除而動態(tài)調(diào)整元組的存儲空間在創(chuàng)建時就確定,不會改變操作支持列表支持更多的操作方法,如append()、insert()、pop()等用于修改列表的方法。元組由于不可變,不支持修改操作的方法5.3.1集合類型簡介集合不僅可用來表示數(shù)及其運算,更可用于非數(shù)值信息的表示和處理,集合的定義是這樣的“一般把一些確定的、彼此不同的或具有共同性質(zhì)的事物匯集成的一個整體,稱為一個集合,組成集合的那些事物就稱為集合的元素”,在Python中,集合(Set)是一種無序且不包含重復元素的數(shù)據(jù)結(jié)構(gòu),集合中的元素不會重復,集合中的元素沒有特定的順序,無法通過索引來訪問元素。5.3 集合類型在python中集合經(jīng)常應用于以下場景:去重:快速去除列表或其他可迭代對象中的重復元素。成員關系測試:判斷一個元素是否在集合中,時間復雜度為O(1)。集合運算:解決涉及并集、交集、差集等的問題。運算運算符方法功能描述并集|union()返回一個包含兩個集合中所有元素的新集合交集&intersection()返回一個包含兩個集合中共同元素的新集合差集-difference()返回一個新集合,其中包含在第一個集合中但不在第二個集合中的元素對稱差集^symmetric_difference()返回一個新集合,其中包含只在其中一個集合中出現(xiàn)的元素(一)創(chuàng)建集合在python中經(jīng)常使用{}直接創(chuàng)建集合,也可使用set()函數(shù)將其他可迭代對象(列表、元組、字符串等)轉(zhuǎn)換為集合5.3.2集合類型的操作實例5-16直接用{}創(chuàng)建集合set1,將11、22、33、44、55、66、77作為元素放在集合內(nèi),并顯示set1的內(nèi)容和類型。set1={11,22,33,44,55,66,77}print(set1)print(type(set1))輸出:{33,66,22,55,11,44,77}<class'set'>實例5-17用set()函數(shù)將列表list8轉(zhuǎn)換為集合set2,并顯示list8、set1的內(nèi)容和類型。list8=[11,22,33,44,55,66,77,33,88]set2=set(list8)print(list8)print(type(list8))print(set2)print(type(set2))輸出:[11,22,33,44,55,66,77,33,88]<class'list'>{33,66,11,44,77,22,55,88}<class'set'>(二)集合的基本操作1.添加集合元素5.3.2集合類型的操作在Python中,向集合添加元素主要有兩種常用方法:add()方法和update()方法,add()方法用于向集合中添加一個元素,update()方法用于將一個可迭代對象中的元素添加到集合中。用add()方法添加單個元素88添加到集合set1中:set1={11,22,33,44,55,66,77}set1.add(88)print(set1)輸出為:{33,66,22,55,88,11,44,77}用update()方法將列表list9中的元素添加到集合set1中:set1={11,22,33,44,55,66,77}list9=[88,99,0]set1.update(list9)print(set1)輸出為:{0,66,11,77,22,88,33,99,44,55}(二)集合的基本操作2.刪除集合元素5.3.2集合類型的操作在Python中,刪除集合中的元素常用方法有remove()、discard()、pop()、clear(),remove()方法用于從集合中刪除指定的元素;discard()方法也是用于從集合中刪除指定的元素;pop()方法用于隨機刪除并返回集合中的一個元素;clear()方法用于清空集合中的所有元素,直接將集合變?yōu)榭占?。用remove()方法刪除set1集合中單個元素“55”set1={11,22,33,44,55,66,77}set1.remove(55)print(set1)輸出為:{33,66,22,11,44,77}用pop()方法隨機刪除set1中的一個元素,并將刪除元素放在變量del_ele中:set1={11,22,33,44,55,66,77}del_ele=set1.pop()print(set1)print(del_ele)輸出為:{66,22,55,11,44,77}33用clear()方法清空集合set1,使set1變?yōu)榭占簊et1={11,22,33,44,55,66,77}set1.clear()print(set1)輸出為:set()5.4.1字典類型簡介在Python中,字典(Dictionary)是一種無序的鍵值對數(shù)據(jù)結(jié)構(gòu)??梢允褂没ɡㄌ杮}來創(chuàng)建字典,并通過key:value的形式來定義鍵值對。鍵必須是唯一且不可變的數(shù)據(jù)類型,通常使用字符串、數(shù)字或元組。值可以是任何數(shù)據(jù)類型,包括列表、字典等。字典是無序的,即鍵值對的存儲順序不固定。5.4 字典類型stu是一個字典:stu1={"202305001212":"李平","202305001345":"張濤","202305001478","王程"}在字典stu中,學號就是鍵,從鍵可以找到相應的值,即姓名,stu字典可以視為是二維結(jié)構(gòu)的表格學號姓名202305001212李平202305001345張濤202305001478王程鍵值對映射關系可變性與動態(tài)性鍵的不可變性無序性與非序列性嵌套性與復雜性空間與時間效率特點5.4.2字典類型的操作(一)創(chuàng)建字典5.4 字典類型在Python中,創(chuàng)建字典(Dictionary)有多種方法,常見的方式是用{}直接創(chuàng)建、使用dict()函數(shù)創(chuàng)建實例5-27用{}直接創(chuàng)建字典。stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}print(stu1)print(type(stu1))程序運行結(jié)果:{'202305001212':'李平','202305001345':'張濤','202305001478':'王程'}<class'dict'>從包含鍵值對的元組列表list_of_tuple創(chuàng)建字典list_of_tuple=[("202305001212","李平"),("202305001345","張濤"),("202305001478","王程")]stu2=dict(list_of_tuple)print(list_of_tuple)print(type(list_of_tuple))print(stu2)print(type(stu2))程序運行結(jié)果:[('202305001212','李平'),('202305001345','張濤'),('202305001478','王程')]<class'list'>{'202305001212':'李平','202305001345':'張濤','202305001478':'王程'}<class'dict'>(二)訪問字典中的值在python中,訪問字典中的值有多種方法,方括號[]指定鍵值訪問、使用get()方法、遍歷字典訪問值、根據(jù)條件判斷訪問值。5.4.2字典類型的操作實例5-28方括號[]指定鍵值訪問stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}print(stu1["202305001345"])程序運行結(jié)果:張濤實例5-29使用get()方法訪問字典中的值stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}print(stu1.get("202305001345"))程序運行結(jié)果:張濤(二)訪問字典中的值對字典進行遍歷時,可以通過遍歷鍵來獲取對應的值,也可以同時遍歷鍵和值。5.4.2字典類型的操作實例5-30遍歷字典鍵。stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}forkeyinstu1:print(stu1[key])程序運行結(jié)果:李平張濤王程實例5-31遍歷字典鍵值對stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}forkey,valueinstu1.items():print(key,value)程序運行結(jié)果:202305001212李平202305001345張濤202305001478王程(二)訪問字典中的值5.4.2字典類型的操作實例5-32根據(jù)條件訪問stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}if"202305001478"instu1:print(stu1["202305001478"])程序運行結(jié)果:王程實例5-33獲取所有鍵或值stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}keys=stu1.keys()values=stu1.values()items=stu1.items()print(keys)print(values)print(items)程序運行結(jié)果:dict_keys(['202305001212','202305001345','202305001478'])dict_values(['李平','張濤','王程'])dict_items([('202305001212','李平'),('202305001345','張濤'),('202305001478','王程')])(三)添加或更新鍵值對在Python中,添加或更新字典中的鍵值對可以通過直接賦值、update()方法來實現(xiàn)。直接賦值時如果鍵不存在,這將添加一個新的鍵值對。如果鍵已存在,這將更新該鍵對應的值。5.4.2字典類型的操作實例5-34更新鍵值對stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}stu1["202305001478"]="王成"print(stu1)程序運行結(jié)果:{'202305001212':'李平','202305001345':'張濤','202305001478':'王成'}實例5-35添加鍵值對stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}stu1["202305001488"]="王成"print(stu1)程序運行結(jié)果:{'202305001212':'李平','202305001345':'張濤','202305001478':'王程','202305001488':'王成'}實例5-36使用update()方法可以一次性添加或更新多個鍵值對stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}stu1.update({"202305001212":"李小平","202405001478":"王程","202405001488":"王成"})print(stu1)程序運行結(jié)果:{'202305001212':'李小平','202305001345':'張濤','202305001478':'王程','202405001478':'王程','202405001488':'王成'}(四)刪除字典鍵值在Python中,刪除字典中的鍵值對常見的方法有del語句、pop()方法、popitem()方法、clear()方法。del語句直接根據(jù)指定鍵刪除鍵值對;pop()方法會刪除指定的鍵值對,并返回被刪除的值;popitem()方法會隨機刪除并以元組形式返回一個鍵值對;clear()方法用于清空字典中的所有鍵值對,使用后字典將變?yōu)橐粋€空字典。5.4.2字典類型的操作實例5-37用del語句刪除stu1字典中鍵為"202305001345"的鍵值stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}delstu1["202305001345"]print(stu1)程序運行結(jié)果:{'202305001212':'李平','202305001478':'王程'}實例5-38用pop()方法刪除stu1中的鍵為"202305001345"的鍵值,并將刪除的值放在變量del_val1中。stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}del_val1=stu1.pop("202305001345")print(stu1)print(del_val1)程序運行結(jié)果:{'202305001212':'李平','202305001478':'王程'}張濤(四)刪除字典鍵值5.4.2字典類型的操作實例5-39popitem()方法隨機刪除一個鍵值對,并將刪除的鍵值放在變量del_val2中stu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}del_val2=stu1.popitem()print(stu1)print(del_val2)print(type(del_val2))程序運行結(jié)果:{'202305001212':'李平','202305001345':'張濤'}('202305001478','王程')<class'tuple'>實例5-40用clear()方法清空字典stu1,使stu1變?yōu)榭兆值鋝tu1={"202305001212":"李平","202305001345":"張濤","202305001478":"王程"}stu1.clear()print(stu1)程序運行結(jié)果:{}5.5.1英文文本分詞英文文本分詞使用split()函數(shù)完成,用于將字符串按照某個特定的分隔符拆分成多個部分。split()函數(shù)的返回值是一個列表,包含了被分割的子字符串。5.5jieba庫的使用split函數(shù)的語法如下:str.split([sep[,maxsplit]])參數(shù)解釋:str表示要分割的字符串sep表示分隔符,如果沒有指定則默認為以空格為分隔符maxsplit表示最大分割次數(shù),如果指定,則將字符串分割成最多maxsplit個字符串,否則將全部分割。實例5-41split()函數(shù)示例strs='tobeornottobe'print(strs.split())print(strs.split('b'))程序運行結(jié)果:['to','be','or','not','to','be']['to','eornotto','e']5.5.2中文文本分詞中文文本分詞可用使用jieba庫完成。如果沒有安裝jieba庫,在命令提示符下鍵入pipinstalljieba命令安裝。5.5jieba庫的使用函數(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精確模式試圖將句子最精確地切開,適合文本分析。全模式把句子中所有的可以成詞的詞語都掃描出來,速度非???,但是不能解決歧義。搜索引擎模式在精確模式的基礎上,對長詞再次切分,提高召回率,適合用于搜索引擎分詞。5.5.2中文文本分詞5.5jieba庫的使用實例5-42jieba.lcut()精確模式。importjiebastrs='不知細葉誰裁出,二月春風似剪刀'print(jieba.lcut(strs))程序運行結(jié)果:['不知','細葉','誰','裁出',',','二月','春風','似','剪刀']實例5-43jieba.lcut全模式importjiebastrs='不知細葉誰裁出,二月春風似剪刀'print(jieba.lcut(strs,cut_all=True))程序運行結(jié)果:['不知','細葉','誰','裁','出',',','二月','春風','似','剪刀']詞云是一種可視化描繪單詞或詞語出現(xiàn)在文本數(shù)據(jù)中頻率的方式,它主要是由隨機分布在詞云圖的單詞或詞語構(gòu)成,出現(xiàn)頻率較高的單詞或詞語則會以較大的形式呈現(xiàn)出來,而頻率越低的單詞或詞語則會以較小的形式呈現(xiàn)。詞云主要提供了一種觀察社交媒體網(wǎng)站上的熱門話題或搜索關鍵字的一種方式,它可以對網(wǎng)絡文本中出現(xiàn)頻率較高的“關鍵詞”予以視覺上的突出。Wordcloud又稱詞云,是文本數(shù)據(jù)的視覺表示,由詞匯組成類似云的彩色圖形,用于展示大量文本數(shù)據(jù)。每個詞的重要性以字體大小或顏色顯示。Wordcloud庫是一款Python的第三方庫,需要通過pip指令在終端安裝。如果沒有安裝wordcloud庫,在命令提示符下鍵入pipinstallwordcloud命令安裝。5.6Wordcloud庫的使用Wordcloud庫常用函數(shù)函數(shù)含義wordcloud.WordCloud() 根據(jù)參數(shù)生成一個WordCloud對象w.generate()向?qū)ο體中加載文本w.to_file() 將詞云圖存儲為圖像文件(.png或.jpg格式)Wordcloud對象配置參數(shù)參數(shù)描述font_path:string字體路徑width:int(default=400)輸出的畫布寬度,默認為400像素height:int(default=200)輸出的畫布高度,默認為200像素

mask:nd-arrayorNone(default=None)如果參數(shù)為空,則使用二維遮罩繪制詞云;如果mask非空,設置的寬高值將被忽略,遮罩形狀被mask取代。除全白(#FFFFFF)的部分不會繪制,其余部分會用于繪制詞云background_color:colorvalue(default="black") 背景顏色5.6Wordcloud庫的使用實例5-44生成詞云圖importjiebatext='《三體》憑借極具想象張力的科學敘事,科學派與人文派兼具,征服了廣大海外讀者。在多元化的讀者閱讀中,文本符號的隱喻價值被解構(gòu)成不同的能指,具有較強的不確定性,而所指也處于游離狀態(tài),這種開放式的文本解讀,充分滿足了讀者差異化的審美需求,形成了非常強的包容性和超現(xiàn)實美感。'words=jieba.lcut(text)importwordcloud#生成詞云圖importmatplotlib.pyplotaspltwords=''.join(words)img=plt.imread('c:/temp/s2.jpg')wc=wordcloud.WordCloud(background_color='white',font_path="msyh.ttc",mask=imgwc.generate(words)print("將詞云圖以文件的方式保存在c:/temp/L56.png")wc.to_file("c:/temp/L56.png")圖5-2遮罩圖圖5-3詞云圖本章總結(jié)1.組合數(shù)據(jù)類型概述概念與分類:組合數(shù)據(jù)類型可組織多個數(shù)據(jù),分為序列類型(如字符串、列表、元組)、集合類型和映射類型(如字典)。應用場景:適用于處理復雜數(shù)據(jù)結(jié)構(gòu),如學生成績、購物車商品等。2.列表類型簡介:有序、可修改,能容納不同類型數(shù)據(jù),創(chuàng)建方式多樣,支持多種操作。操作生成列表:可通過普通循環(huán)或列表推導式生成,后者更簡潔高效。訪問元素:通過索引(正數(shù)或負數(shù))或切片訪問單個或多個元素。修改元素:直接通過索引賦值。列表連接和復制:使用“+”和“*”運算符或extend、copy方法。添加元素:有append、extend、insert方法。移除元素:包括remove、pop、del語句,各有特點。嵌套列表:用于表示復雜多維數(shù)據(jù),可通過多重索引訪問元素。本章圍繞Python的組合數(shù)據(jù)類型展開教學,包括列表、元組、集合、字典等,同時介紹了jieba庫和wordcloud庫的使用。通過學習,學生能夠掌握各種組合數(shù)據(jù)類型的概念、特點、操作方法,以及在實際編程中的應用,還能培養(yǎng)良好的編程習慣和解決問題的能力。本章總結(jié)

3.元組類型簡介:不可變序列,用圓括號括起來,元素可包含多種類型,創(chuàng)建方式有多種。操作創(chuàng)建:使用()或tuple()函數(shù)。訪問:與列表類似,通過索引訪問元素。對比:與列表相比,元組不可變,性能在數(shù)據(jù)量大時更優(yōu),常用于表示固定數(shù)據(jù)。4.集合類型簡介:無序、不包含重復元素,用于去重、成員關系測試和集合運算。操作創(chuàng)建:用{}或set()函數(shù)?;静僮鳎禾砑釉赜胊dd、update方法,刪除元素有remove、discard、pop、clear方法。5.字典類型簡介:無序鍵值對數(shù)據(jù)結(jié)構(gòu),鍵唯一且不可變,值可為任意類型,具有多種特點。操作創(chuàng)建:用{}或dict()函數(shù)。訪問值:有多種方法,如方括號指定鍵值、get方法、遍歷

溫馨提示

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

評論

0/150

提交評論