(5.6.1)-5.6《字典的遍歷、合并及排序》_第1頁(yè)
(5.6.1)-5.6《字典的遍歷、合并及排序》_第2頁(yè)
(5.6.1)-5.6《字典的遍歷、合并及排序》_第3頁(yè)
(5.6.1)-5.6《字典的遍歷、合并及排序》_第4頁(yè)
(5.6.1)-5.6《字典的遍歷、合并及排序》_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

5.6字典的遍歷、合并及排序第5章組合數(shù)據(jù)類型01字典的遍歷字典的合并02字典的排序03學(xué)習(xí)目標(biāo)通過(guò)本小節(jié)的學(xué)習(xí),你可以:案例導(dǎo)入例:已知字典dicnames={"20200105":"李四","20200102":"張三","20202110":"趙六","20200118":"錢七","20200107":"王五","20200101":"宋二"}存放的是學(xué)生的學(xué)號(hào)和姓名信息,dicscores={“20200105”:[75,64],“20200102”:[89,86],“20202110”:[54,67],“20200118”:[97,91],“20200107”:[68,91],“20200101”:[68,73]}存放的是學(xué)生的學(xué)號(hào)和成績(jī)信息,請(qǐng)編寫程序?qū)icnames和dicscores合并成一個(gè)新的字典dicInformations,保存學(xué)生的學(xué)號(hào)、姓名和平均成績(jī)信息,并按學(xué)號(hào)升序輸出每個(gè)同學(xué)的信息。

需解決的問(wèn)題:(1)將原有的2個(gè)字典合并生成一個(gè)新字典(2)字典排序(3)輸出字典中的內(nèi)容知識(shí)點(diǎn)1字典的遍歷01字典的遍歷遍歷字典中所有的條目遍歷條目并整體訪問(wèn)遍歷條目,分別訪問(wèn)鍵和值具有更好的靈活性(推薦)字典名.items():以(鍵,值)形式返回所有條目例:已知字典dicnames={“20200105”:“李四”,"20200102":"張三","20202110":"趙六","20200118":"錢七","20200107":"王五","20200101":"宋二"},要求輸出每個(gè)學(xué)生的學(xué)號(hào)和姓名信息。foritemin字典名.items():或者fork,v

in字典名.items():dicnames={"20200105":"李四","20200102":"張三","20202110":"趙六","20200118":"錢七","20200107":"王五","20200101":"宋二"}foritemindicnames.items():print(item)fork,vindicnames.items()

:print("學(xué)號(hào)為{}的姓名是{}".format(k,v))('20200105','李四')('20200102','張三')('20202110','趙六')('20200118','錢七')('20200107','王五')('20200101','宋二')學(xué)號(hào)為20200105的姓名是李四學(xué)號(hào)為20200102的姓名是張三學(xué)號(hào)為20202110的姓名是趙六學(xué)號(hào)為20200118的姓名是錢七學(xué)號(hào)為20200107的姓名是王五學(xué)號(hào)為20200101的姓名是宋二字典的遍歷2.遍歷字典中所有的鍵字典名.keys():提取字典所有鍵,以列表形式返回例:已知字典dicnames={"20200105":"李四","20200102":"張三","20202110":"趙六","20200118":"錢七","20200107":"王五","20200101":"宋二"},輸出每個(gè)學(xué)生的學(xué)號(hào)和姓名信息。forkin字典.keys():或者forkin字典名:20200105李四20200102張三20202110趙六20200118錢七20200107王五20200101宋二dicnames={"20200105":"李四","20200102":"張三","20202110":"趙六","20200118":"錢七","20200107":"王五","20200101":"宋二"}forkindicnames.keys():print(k,dicnames[k])forkindicnames:print(k,dicnames[k])鍵值字典的遍歷遍歷字典中所有的值注意:借助values方法雖然可以遍歷找出字典中所有的值,但是值卻無(wú)法映射到對(duì)應(yīng)的鍵,無(wú)法遍歷完整的條目信息。字典名.values():以列表形式返回所有值forvaluein字典名.values():例:已知字典dicnames={"20200105":"李四","20200102":"張三","20202110":"趙六","20200118":"錢七","20200107":"王五","20200101":"宋二"},輸出每個(gè)學(xué)生的姓名。dicnames={"20200105":"李四","20200102":"張三","20202110":"趙六","20200118":"錢七","20200107":"王五","20200101":"宋二"}forvalueindicnames.values():print(value)李四張三趙六錢七王五宋二知識(shí)點(diǎn)2字典的合并02參數(shù)字典擴(kuò)充至主字典中字典的合并1.使用字典的update方法參數(shù)字典本身不變相同“鍵”的條目,合并后只保留一個(gè)將參數(shù)字典條目合并進(jìn)字典將兩個(gè)字典合并成一個(gè)字典>>>dicscores={"20200105":75,"20200102":89,"20202110":54,"20200118":97}>>>dicscores1={"20200107":68,"20202110":79}>>>dicscores.update(dicscores1)>>>dicscores{'20200105':75,'20200102':89,'20202110':79,'20200118':97,'20200107':68}>>>dicscores1{'20200107':68,'20202110':79}字典名.update(參數(shù)字典名)字典的合并使用dict函數(shù)dict函數(shù)將生成新的字典函數(shù)的兩個(gè)參數(shù)字典本身不變將兩個(gè)字典合并成新字典dict(字典1,**字典2)相同“鍵”的條目,合并后只保留一個(gè)>>>dicscores={"20200105":75,"20200102":89,"20202110":54,"20200118":97}>>>dicscores1={"20200107":68,"20202110":79}>>>dicnew=dict(dicscores,**dicscores1)>>>dicnew{'20200105':75,'20200102':89,'20202110':79,'20200118':97,'20200107':68}>>>dicscores{'20200105':75,'20200102':89,'20202110':54,'20200118':97}>>>dicscores1{'20200107':68,'20202110':79}字典的合并3.使用for循環(huán)將兩個(gè)字典合并成一個(gè)字典【例】假設(shè)dicnames={‘2021001’:‘張三’,‘2021003’:‘李四’,‘2021002’:‘王五’}存放的是學(xué)號(hào)和姓名,dichometowns={‘2021001’:‘四川成都’,‘2021003’:‘湖北武漢’,‘2021002’:‘山東青島’}存放的是學(xué)號(hào)和籍貫,請(qǐng)編寫程序?qū)icnames和dichometowns合并成一個(gè)新的字典dicInformations,保存這三個(gè)學(xué)生的學(xué)號(hào)、姓名和籍貫信息。dicnames={'2021001':'張三','2021003':'李四','2021002':'王五'}dichometowns={'2021001':'四川成都','2021003':'湖北武漢','2021002':'山東青島'}dicInformations={}fork,vindicnames.items():dicInformations[k]=(v,dichometowns[k])print(dicInformations){'2021001':('張三','四川成都'),'2021003':('李四','湖北武漢'),'2021002':('王五','山東青島')}按“鍵”實(shí)現(xiàn)的“值合并”知識(shí)點(diǎn)3字典的排序03字典的排序sorted函數(shù)可以將字典中的鍵排序并以列表的形式返回。字典本身并不發(fā)生改變。【例】已知字典dicnames={'2021001':'張三','2021003':'李四','2021002':'王五'}存放的是學(xué)號(hào)和姓名,請(qǐng)按照學(xué)號(hào)升序輸出三個(gè)學(xué)生的學(xué)號(hào)和對(duì)應(yīng)的姓名。dicnames={'2021001':'張三','2021003':'李四','2021002':'王五'}ls=sorted(dicnames)#生成按鍵排序的列表['2021001','2021002','2021003']foriinls:print(i,dicnames[i])2021001張三2021002王五2021003李四知識(shí)點(diǎn)4案例講解04案例講解例:已知字典dicnames={"20200105":"李四","20200102":"張三","20202110":"趙六","20200118":"錢七","20200107":"王五","20200101":"宋二"}存放的是學(xué)生的學(xué)號(hào)和姓名信息,dicscores={“20200105”:[75,64],“20200102”:[89,86],“20202110”:[54,67],“20200118”:[97,91],“20200107”:[68,91],“20200101”:[68,73]}存放的是學(xué)生的學(xué)號(hào)和成績(jī)信息,請(qǐng)編寫程序?qū)icnames和dicscores合并成一個(gè)新的字典dicInformations,保存學(xué)生的學(xué)號(hào)、姓名和平均成績(jī)信息,并按學(xué)號(hào)升序輸出每個(gè)同學(xué)的信息。需解決的問(wèn)題:(1)將原有的2個(gè)字典合并生成一個(gè)新字典(2)字典排序(3)輸出字典中的內(nèi)容dicnames={"20200105":"李四","20200102":"張三","20202110":"趙六","20200118":"錢七","20200107":"王五","20200101":"宋二"}dicscores={"20200105":[75,64],"20200102":[89,86],"20202110":[54,67],"20200118":[97,91],"20200107":[68,91],"20200101":[68,73]}dicInformations={}fork,vindicnames.items():dicInformations[k]=(v,sum(dicscores[k])/len(dicscores[k]))ls=sorted(dicInformations)#合并到新字典#生成一個(gè)包含學(xué)號(hào)的列表,學(xué)號(hào)按升序排序foriinls:print("學(xué)號(hào):{},姓名:{},平均成績(jī):{}".format(i,dicInformations[i][0],dicInformations[i][1]))學(xué)號(hào):20200101,姓名:宋二,平均成績(jī):70.5學(xué)號(hào):20200102,姓名:張三,平均成績(jī):87.5學(xué)號(hào):20200105,姓名:李四,平均成績(jī):69.5學(xué)號(hào):20200107,姓名:王五,平均成績(jī):79.5學(xué)號(hào):20200118,姓名:錢七,平均成績(jī):94.0學(xué)號(hào):20202110,姓名:趙六,

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論