Python程序設(shè)計(jì)項(xiàng)目式教程 課件 項(xiàng)目四 組合數(shù)據(jù)類型_第1頁
Python程序設(shè)計(jì)項(xiàng)目式教程 課件 項(xiàng)目四 組合數(shù)據(jù)類型_第2頁
Python程序設(shè)計(jì)項(xiàng)目式教程 課件 項(xiàng)目四 組合數(shù)據(jù)類型_第3頁
Python程序設(shè)計(jì)項(xiàng)目式教程 課件 項(xiàng)目四 組合數(shù)據(jù)類型_第4頁
Python程序設(shè)計(jì)項(xiàng)目式教程 課件 項(xiàng)目四 組合數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

項(xiàng)目四

組合數(shù)據(jù)類型目錄Python組合數(shù)據(jù)類型概述01列表基本操作02列表高級操作03任務(wù)4-1敏感詞檢測實(shí)現(xiàn)04元組特性與應(yīng)用05任務(wù)4-2公司年終隨機(jī)抽獎(jiǎng)06集合特性與操作07任務(wù)4-3數(shù)據(jù)打包和解包08字典基礎(chǔ)操作09任務(wù)4-4公司月薪top5名單10技能拓展:利用大模型生成代碼1101Python組合數(shù)據(jù)類型概述列表特性與創(chuàng)建方式組合類型應(yīng)用場景02列表基本操作創(chuàng)建與訪問方法列表創(chuàng)建與訪問列表可用中括號`[]`或`list()`函數(shù)創(chuàng)建,支持索引、切片及循環(huán)訪問元素。元組創(chuàng)建與訪問元組通過圓括號創(chuàng)建,具有不可變性和有序性,支持索引訪問元素。集合創(chuàng)建與訪問集合用大括號或set()函數(shù)創(chuàng)建,元素?zé)o序且唯一,不支持索引訪問。字典創(chuàng)建與訪問字典通過大括號或dict()創(chuàng)建,以鍵值對存儲數(shù)據(jù),鍵唯一且不可變,支持鍵訪問或get()方法。元素添加與修改Part1:創(chuàng)建(Creation)Part2:添加(Adding)03列表高級操作排序與刪除排序與刪除(1)sort()方法sort()方法用于對列表進(jìn)行就地排序,即直接修改原始列表。它具有以下特點(diǎn):默認(rèn)按升序排列(從小到大)??梢酝ㄟ^reverse參數(shù)指定是否按降序排列(從大到?。?。該方法沒有返回值,直接在原列表上進(jìn)行修改。(1)sort()方法(2)reverse()方法reverse()方法用于將列表中的元素反轉(zhuǎn)其順序,它具有以下特點(diǎn):直接對原始列表進(jìn)行修改,不會返回副本。它并不對列表元素進(jìn)行排序,而只是反轉(zhuǎn)列表中元素的順序。排序與刪除(3)sorted()方法sorted()方法用于返回一個(gè)新的已排序列表,原列表保持不變,它具有以下特點(diǎn):與sort()不同,sorted()不會修改原有列表,而是創(chuàng)建一個(gè)新列表。同樣可以使用reverse參數(shù)來控制排序順序。排序與刪除(1)del語句del是一個(gè)Python語句,用于刪除指定索引的元素或整個(gè)列表,其具有以下特點(diǎn):可以通過索引刪除單個(gè)元素。可以用來刪除整個(gè)列表。如果刪除的索引超出范圍,會引發(fā)IndexError異常。(2)remove()方法remove()方法用于刪除列表中第一個(gè)匹配的指定值,其具有以下特點(diǎn):如果列表中存在多個(gè)相同的值,只會刪除第一個(gè)。如果指定的值不存在,將引發(fā)ValueError異常。排序與刪除(3)pop()方法pop()方法用于刪除并返回指定位置的元素。如果沒有指定位置,則默認(rèn)刪除并返回最后一個(gè)元素,其具有以下特點(diǎn):返回被刪除的元素??梢酝ㄟ^索引刪除任何位置的元素,若索引超出范圍,則引發(fā)IndexError異常。(4)clear()方法clear()方法用于刪除列表中的所有元素,其具有以下特點(diǎn):列表將變?yōu)榭樟斜恚珜ο蟊旧砣匀淮嬖?。不會引發(fā)錯(cuò)誤,即使列表已經(jīng)是空的。04任務(wù)4-1敏感詞檢測實(shí)現(xiàn)敏感詞列表定義敏感詞列表定義定義含多個(gè)敏感詞的列表,通過input()獲取用戶輸入文本并轉(zhuǎn)為小寫以確保匹配不受大小寫影響。01文本匹配與替換12敏感詞檢測功能實(shí)現(xiàn)定義敏感詞列表,獲取用戶輸入文本并轉(zhuǎn)為小寫,遍歷檢測敏感詞并用等長星號替換,輸出檢測結(jié)果。敏感詞替換方法利用replace()實(shí)現(xiàn)大小寫不敏感替換,用等長星號替代敏感詞并輸出結(jié)果。任務(wù)描述在社交平臺或評論區(qū),用戶可能會發(fā)布包含敏感詞的內(nèi)容。為了維護(hù)良好的網(wǎng)絡(luò)環(huán)境,需要實(shí)現(xiàn)一個(gè)簡單的敏感詞檢測功能。該功能將檢查用戶輸入的文本是否包含一系列預(yù)定義的敏感詞,并輸出相關(guān)提示。在這個(gè)例子中,用列表來存儲敏感詞,并通過用戶輸入進(jìn)行檢測。任務(wù)分析首先,需要準(zhǔn)備敏感詞數(shù)據(jù),即創(chuàng)建一個(gè)包含需要檢測的敏感詞語列表。之后,程序會接收用戶的輸入,獲取用戶提供的待檢測文本內(nèi)容。接下來進(jìn)入敏感詞檢測的核心環(huán)節(jié),程序會遍歷預(yù)先設(shè)定的敏感詞列表,逐一檢查用戶輸入的文本中是否包含這些敏感詞,并將所有檢測到的敏感詞記錄下來并輸出。最后,程序會根據(jù)檢測結(jié)果輸出最終信息:如果檢測到任何敏感詞,則會給出相應(yīng)的提示信息;反之,如果未檢測到敏感詞,則輸出“無敏感詞”的提示。任務(wù)實(shí)現(xiàn)#定義敏感詞列表sensitive_words=['壞話','辱罵','暴力','詐騙']步驟1:數(shù)據(jù)準(zhǔn)備#用戶輸入user_input=input("請輸入您的文本:")步驟2:用戶輸入任務(wù)實(shí)現(xiàn)#定義敏感詞列表sensitive_words=['壞話','辱罵','暴力','詐騙']步驟1:數(shù)據(jù)準(zhǔn)備#用戶輸入user_input=input("請輸入您的文本:")步驟2:用戶輸入任務(wù)實(shí)現(xiàn)#將用戶輸入轉(zhuǎn)為小寫,以保證匹配時(shí)不區(qū)分大小寫user_input_lower=user_input.lower()步驟3:轉(zhuǎn)換為小寫#用于存儲檢測到的敏感詞found_words=[]#用于存儲修改后的句子,初始為原始輸入句子modified_input=user_input步驟4:初始化變量任務(wù)實(shí)現(xiàn)#檢查輸入文本中是否包含敏感詞forwordinsensitive_words:ifwordinuser_input_lower:found_words.append(word)#添加檢測到的敏感詞#計(jì)算敏感詞的長度,用于生成相應(yīng)數(shù)量的*號replacement='*'*len(word)#使用replace方法替換原始句子中的敏感詞modified_input=modified_input.replace(word,replacement,modified_input.lower().count(word))#替換所有匹配項(xiàng)步驟5:敏感詞檢測任務(wù)實(shí)現(xiàn)#根據(jù)檢測結(jié)果輸出信息iffound_words:print(f"檢測到敏感詞:{','.join(found_words)}")print(f"替換后的句子:{modified_input}")else:print(f"該文本中不存在敏感詞:{modified_input}")步驟6:輸出結(jié)果05元組特性與應(yīng)用元組不可變特性010203元組不可變性元組具有不可變性,創(chuàng)建后無法修改元素,確保數(shù)據(jù)安全性和穩(wěn)定性。元組有序性元組是有序序列,支持索引和切片訪問元素,保持?jǐn)?shù)據(jù)排列順序不變。元組創(chuàng)建方式元組可通過小括號或tuple()函數(shù)創(chuàng)建,存儲不同類型數(shù)據(jù)且允許重復(fù)項(xiàng)。創(chuàng)建元組在Python中,可以通過圓括號“()”來創(chuàng)建一個(gè)元組,示例代碼如下:#創(chuàng)建一個(gè)空元組empty_tuple=()print("空元組:",empty_tuple)#創(chuàng)建一個(gè)含有多個(gè)元素的元組fruits_tuple=("apple","banana","cherry")print("水果元組:",fruits_tuple)#單元素元組需要加逗號single_element_tuple=(42,)print("單元素元組:",single_element_tuple)訪問元組元素(1)通過索引來訪問元組中的元素#訪問元組中的元素first_fruit=fruits(0)second_fruit=fruits(1)print("第一個(gè)水果:",first_fruit)#輸出:appleprint("第二個(gè)水果:",second_fruit)#輸出:banana(2)使用for遍歷元組#遍歷元組中的元素forfruitinfruits:print("水果:",fruit)06任務(wù)4-2公司年終隨機(jī)抽獎(jiǎng)任務(wù)描述在公司年終晚會上,組織一次隨機(jī)抽獎(jiǎng)活動(dòng)。所有員工的姓名和對應(yīng)的工號將被記錄,我們將從中隨機(jī)抽取獲獎(jiǎng)?wù)?。為了確保每個(gè)員工只參與一次抽獎(jiǎng),并且輸出結(jié)果時(shí)保持簡潔,我們將使用元組來管理抽獎(jiǎng)數(shù)據(jù)。任務(wù)分析首先,需要進(jìn)行數(shù)據(jù)準(zhǔn)備,創(chuàng)建一組包含員工姓名及其工號的數(shù)據(jù),并且要保證每位員工的記錄是唯一的,沒有重復(fù)。接下來進(jìn)入抽獎(jiǎng)過程,使用元組列表來存儲這些員工信息。然后,系統(tǒng)會從中隨機(jī)選取預(yù)定數(shù)量的員工作為獲獎(jiǎng)?wù)摺W詈?,程序會將抽選出的獲獎(jiǎng)員工的姓名和工號信息輸出,以此完成整個(gè)抽獎(jiǎng)流程。任務(wù)實(shí)現(xiàn)importrandom#員工姓名和工號的初始列表employees_data=[('Alice','E001'),('Bob','E002'),('Charlie','E003'),('David','E004'),('Eva','E005'),('Frank','E006'),('George','E007')]步驟1:數(shù)據(jù)準(zhǔn)備#隨機(jī)選擇3名獲獎(jiǎng)?wù)遪um_winners=3winners=random.sample(employees_data,min(num_winners,len(employees_data)))步驟2:抽獎(jiǎng)過程任務(wù)實(shí)現(xiàn)#輸出抽獎(jiǎng)結(jié)果print("抽獎(jiǎng)結(jié)果:")forwinnerinwinners:name,emp_id=winner#解包元組print(f"獲獎(jiǎng)?wù)咝彰?{name},工號:{emp_id}")步驟3:繼續(xù)輸出抽獎(jiǎng)結(jié)果的部分07集合特性與操作集合的特性集合的常見操作集合提供了多種操作來管理其元素,包括添加、刪除、清空以及集合間的數(shù)學(xué)運(yùn)算。(1)向集合中添加元素可以使用add()方法向集合中添加單個(gè)元素。(2)刪除集合中的元素可以使用remove()方法刪除指定元素,如果元素不存在,會引發(fā)KeyError。使用discard()方法同樣可以刪除元素,但如果元素不存在,不會引發(fā)錯(cuò)誤。(3)清空集合可以使用clear()方法清空集合中的所有元素。08任務(wù)4-3數(shù)據(jù)打包和解包任務(wù)描述在Python中,數(shù)據(jù)打包和解包是一種常用的操作。我們將使用集合和元組這兩種組合數(shù)據(jù)類型,進(jìn)行一項(xiàng)簡單的任務(wù):將一組學(xué)生的姓名和成績進(jìn)行打包,并隨后進(jìn)行解包以便于處理和輸出。任務(wù)分析首先,需要進(jìn)行數(shù)據(jù)準(zhǔn)備,即手動(dòng)創(chuàng)建包含學(xué)生姓名及其對應(yīng)成績的數(shù)據(jù),作為程序的初始輸入。接著進(jìn)入打包過程,將每位學(xué)生的姓名和成績組合成一個(gè)元組,然后為了確保學(xué)生記錄的唯一性,將這些元組存儲到一個(gè)集合中。隨后是解包過程,程序會從集合中逐個(gè)取出學(xué)生元組,并將每個(gè)元組解包還原為單獨(dú)的姓名和成績。最后,程序會將解包得到的學(xué)生姓名和成績信息輸出,完成整個(gè)數(shù)據(jù)處理流程。任務(wù)實(shí)現(xiàn)#學(xué)生姓名和成績的初始列表(包含重復(fù)項(xiàng))students_data=[('Alice',85),('Bob',90),('Charlie',78),('Alice',85),('David',88),('Eva',92),('Bob',90)]步驟1:數(shù)據(jù)準(zhǔn)備#利用集合去重并打包數(shù)據(jù)students_set=set(students_data)步驟2:數(shù)據(jù)打包并去重任務(wù)實(shí)現(xiàn)#輸出打包的數(shù)據(jù)print("打包后的數(shù)據(jù)(去重后集合):")print(students_set)步驟3:輸出打包后的數(shù)據(jù)#解包并輸出結(jié)果forstudentinstudents_set:name,score=student#解包元組print(f"學(xué)生姓名:{name},成績:{score}")步驟4:解包數(shù)據(jù)并輸出信息任務(wù)實(shí)現(xiàn)#將用戶輸入轉(zhuǎn)為小寫,以保證匹配時(shí)不區(qū)分大小寫user_input_lower=user_input.lower()步驟3:轉(zhuǎn)換為小寫#用于存儲檢測到的敏感詞found_words=[]#用于存儲修改后的句子,初始為原始輸入句子modified_input=user_input步驟4:初始化變量09字典基礎(chǔ)操作字典基礎(chǔ)操作鍵值對存儲與創(chuàng)建元素訪問與修改刪除(Delete)元素增刪改查1234列表元素增刪改查列表支持動(dòng)態(tài)增減和修改元素,添加元素常用append()、extend()、insert(),刪除元素可通過del、remove()、pop()等方法實(shí)現(xiàn)。元組元素訪問元組具有不可變性和有序性,通過索引訪問元素,創(chuàng)建后無法修改其內(nèi)容。集合元素操作集合支持添加、刪除、清空元素等操作,通過add()添加元素,remove()刪除元素,clear()清空集合。字典元素增刪改查字典通過鍵訪問值,支持快速查找、插入和刪除,可用pop()按鍵刪除元素,popitem()刪除最后一項(xiàng)。10任務(wù)4-4公司月薪top5名單任務(wù)描述在公司中,我們需要根據(jù)員工的月薪數(shù)據(jù),計(jì)算并列出薪資最高的前五名員工名單。為了有效地管理和處理這些數(shù)據(jù),我們將使用Python的字典和集合來存儲員工的信息,并且利用集合特性實(shí)現(xiàn)去重(如果有重復(fù)薪資)。最終我們要輸出這五名員工的姓名及其對應(yīng)的薪資。任務(wù)分析首先進(jìn)行數(shù)據(jù)準(zhǔn)備,需要?jiǎng)?chuàng)建包含員工姓名和對應(yīng)月薪的數(shù)據(jù),這里允許存在相同的薪資數(shù)值。接著進(jìn)入數(shù)據(jù)處理階段,使用字典來存儲員工信息,以確保每位員工的信息是唯一的。為了分析薪資情況,需要提取字典中的所有薪資值,并利用集合進(jìn)行去重,從而獲得不同的薪資等級。盡管如此,我們的主要目標(biāo)是找出薪資最高的員工,因此更關(guān)鍵的步驟是對全體員工按照薪資進(jìn)行排序,并從中選出薪資最高的前五名員工。最后,在輸出結(jié)果環(huán)節(jié),程序會將這五名薪資最高的員工的姓名和對應(yīng)的薪資打印出來。任務(wù)實(shí)現(xiàn)#員工姓名和月薪的初始字典(可能包含重復(fù)薪資記錄)employees_data={'Alice':5000,'Bob':7000,'Charlie':6000,'David':8000,'Eva':7000,'Frank':9500,'Grace':4500,'Hannah':8000,'Ivy':9500}步驟1:數(shù)據(jù)準(zhǔn)備#利用集合去重并提取薪資數(shù)據(jù)salaries_set=set(employees_data.values())步驟2:數(shù)據(jù)處理任務(wù)實(shí)現(xiàn)#根據(jù)薪資進(jìn)行排序,降序排列,并結(jié)合姓名與薪資組成元組sorted_employees=sorted(employees_data.items(),key=lambdax:x[1],reverse=True)#獲取薪資最高的前五名員工top_5_employees=sorted_employees[:5]步驟3:找到薪資最高的前五名員工任務(wù)實(shí)現(xiàn)#輸出Top5薪資員工名單print("公司月薪Top5名單:

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論