第4章 Python-字典與集合_第1頁
第4章 Python-字典與集合_第2頁
第4章 Python-字典與集合_第3頁
第4章 Python-字典與集合_第4頁
第4章 Python-字典與集合_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章

字典與集合Chap4DictionaryandSetADictionary字典BSet集合2字典4.13為什么要使用字典?salaries['Lilin']4>>>names=['Mayue','Lilin','Wuyun']>>>salaries=[3000,4500,8000]>>>print(salaries[names.index('Lilin')])4500Source某公司人事部門讓技術(shù)部門用Python構(gòu)建一個簡易的員工信息表,包含員工的姓名和工資信息。根據(jù)信息表查詢員工Linlin的工資。字典什么是字典?——一種映射類型鍵(key)值(value)key-value對5鍵是唯一的:數(shù)字字符串元組不可變對象字典aInfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}6字典中的元素是無序的keyvalue'Mayue'3000'Lilin'4500'Wuyun'8000>>>sorted(aInfo)['Lilin','Mayue','Wuyun']Source4.1.1創(chuàng)建字典7創(chuàng)建字典8>>>aInfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}Source直接創(chuàng)建創(chuàng)建字典9>>>info=[('Mayue',3000),('Lilin',4500),('Wuyun',8000)]>>>bInfo=dict(info)>>>print(bInfo){'Lilin':4500,'Wuyun':8000,'Mayue':3000}>>>cInfo=dict([['Mayue',3000],['Lilin',4500],['Wuyun',8000]])>>>dInfo=dict(Mayue=3000,Lilin=4500,Wuyun=8000)>>>eInfo=dict((('Mayue',3000),('Lilin',4500),('Wuyun',8000)))Source用dict()函數(shù)創(chuàng)建創(chuàng)建字典10>>>gInfo={}.fromkeys(('Mayue','Lilin','Wuyun'),3000)>>>print(gInfo){'Lilin':3000,'Mayue':3000,'Wuyun':3000}Source用方法fromkeys(seq[,value])創(chuàng)建創(chuàng)建員工信息表時將所有員工的工資默認值設(shè)置為3000生成字典>>>names=['Mayue','Lilin','Wuyun']>>>salaries=[3000,4500,8000]>>>dict(zip(names,salaries)){'Mayue':3000,'Lilin':4500,'Wuyun':8000}Source11已知有姓名列表和工資列表,如何生成字典類型的員工信息表?生成字典12對于幾個公司的財經(jīng)數(shù)據(jù),如何構(gòu)造公司代碼和股票價格的字典?

pList=[('AXP','AmericanExpressCompany','78.51'),('BA','TheBoeingCompany','184.76'),

('CAT','CaterpillarInc.','96.39'),

('CSCO','CiscoSystems,Inc.','33.71'),

('CVX','ChevronCorporation','106.09')]生成字典13對于幾個公司的財經(jīng)數(shù)據(jù),如何構(gòu)造公司代碼和股票價格的字典?aDict={'AXP':'78.51','BA':'184.76','CAT':'96.39','CSCO':'33.71','CVX':'106.09'}算法分析:可用循環(huán)將公司代碼和股票價格分別append到一個新列表中,再利用zip()和dict()函數(shù)將這兩個列表轉(zhuǎn)化成字典。4.1.2字典的基本操作14字典的基本操作15鍵值查找字典更新添加元素成員判斷刪除元素1.鍵值查找>>>aInfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>aInfo['Lilin']4500Source162.字典更新>>>aInfo['Lilin']=9999>>>aInfo{'Wuyun':8000,'Mayue':3000,'Lilin':9999}Source173.添加元素>>>aInfo={'Mayue':3000,'Lilin':9999,'Wuyun':8000}>>>aInfo['Liuxi']=6000>>>aInfo{'Wuyun':8000,'Liuxi':6000,'Mayue':3000,'Lilin':9999}Source183.添加元素>>>d={}>>>d["Liuyue"]=[65,88,90]>>>d{'Liuyue':[65,88,90]}>>>d['Majin']=[89]>>>d['Majin']+=[94]>>>d["Majin"]

+=[85]>>>d{'Liuyue':[65,88,90],'Majin':[89,94,85]}Source194.成員判斷>>>aInfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>'Liuyun'

inaInfoFalseSource205.刪除元素>>>delaInfo>>>aInfoTraceback(mostrecentcalllast):File"<pyshell#30>",line1,in<module>aInfoNameError:name'aInfo'isnotdefined>>>aInfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>delaInfo['Lilin']>>>aInfo{'Mayue':3000,'Wuyun':8000}Source21字典的內(nèi)建函數(shù)22dict()len()hash()>>>aInfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>len(aInfo)3>>>hash('Mayue')7716305958664889313>>>testList=[1,2,3]>>>hash(testList)Traceback(mostrecentcalllast):File"<pyshell#1>",line1,in<module>hash(testList)TypeError:unhashabletype:'list'Source字典方法23clear()copy()fromkeys()get()items()keys()pop()setdefault()update()values()字典方法>>>aInfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>aInfo.keys()dict_keys(['Mayue','Lilin','Wuyun'])>>>aInfo.values()dict_values([3000,4500,8000])>>>aInfo.items()dict_items([('Mayue',3000),('Lilin',4500),('Wuyun',8000)])Source24keys()values()items()字典方法>>>aInfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>print(aInfo.get('Qiqi'))None>>>print(aInfo.get('Lilin'))4500>>>aInfo['Qiqi']Traceback(mostrecentcalllast):File"<pyshell#2>",line1,in<module>aInfo['Qiqi']KeyError:'Qiqi'Source25get()字典方法>>>stock={'AXP':78.51,'BA':184.76}>>>stock['AAA']Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>KeyError:'AAA'Source下面兩個程序都通過鍵查找值,區(qū)別在哪里?你更喜歡哪一個??>>>stock={'AXP':78.51,'BA':184.76}>>>print(stock.get('AAA'))NoneSource26字典方法>>>aInfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>aInfoBackup=aInfo.copy()>>>aInfoBackup{'Mayue':3000,'Lilin':4500,'Wuyun':8000}Source27copy()字典方法>>>aInfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>aInfo.pop('Lilin')4500>>>aInfo{'Mayue':3000,'Wuyun':8000}Source28pop()字典方法>>>aInfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>aInfo.clear()>>>aInfo{}Source29clear()字典方法>>>anfo={'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>bInfo={}>>>bInfo.update(aInfo)>>>bInfo{'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>cInfo={'Mayue':4000,'Wanqi':6000,'Lilin':9999}>>>aInfo{'Mayue':3000,'Lilin':4500,'Wuyun':8000}>>>aInfo.update(cInfo)>>>aInfo{'Mayue':4000,'Lilin':9999,'Wanqi':6000,'Wuyun':8000}Source30update()字典方法>>>aInfo.setdefault('Lilin',None)#與aInfo.get('Lilin')和aInfo.setdefault('Lilin')效果一樣9999>>>aInfo.setdefault('Jinhe',None)#與aInfo.setdefault('Jinhe')效果一樣>>>aInfo.setdefault('Qiqi',8000)8000>>>aInfo{'Mayue':4000,'Lilin':9999,'Wanqi':6000,'Wuyun':8000,'Jinhe':None,'Qiqi':8000}Source31setdefault()字典方法簡單應(yīng)用已知有員工姓名和工資信息表{'Wangdachui':3000,'Niuyun':2000,'Linling':4500,'Tianqi':8000},如何單獨輸出員工姓名和工資金額??32>>>aInfo={'Wangdachui':3000,'Niuyun':2000,'Linling':4500,'Tianqi':8000}>>>aInfo.keys()dict_keys(['Tianqi','Wangdachui','Niuyun','Linling'])>>>aInfo.values()dict_values([8000,3000,2000,4500])Source字典方法簡單應(yīng)用>>>aInfo={'Wangdachui':3000,'Niuyun':2000,'Linling':4500}>>>bInfo={'Wangdachui':4000,'Niuyun':9999,'Wangzi':6000}>>>aInfo.update(bInfo)>>>aInfo{'Wangzi':6000,'Linling':4500,'Wangdachui':4000,'Niuyun':9999}Source人事部門有兩份人員和工資信息表,第一份是原有信息,第二份是公司中有工資更改人員和新進人員的信息,如何處理可以較快地獲得完整的信息表??33集合4.2集合>>>names=['Wangdachui','Niuyun','Wangzi','Wangdachui','Linling','Niuyun']>>>namesSet=set(names)>>>namesSet{'Wangzi','Wangdachui','Niuyun','Linling'}Source人事部門的一份工資信息表登記時由于工作人員的疏忽有部分姓名重復(fù)登記了,如何快速解決這個問題??35集合什么是集合?

一個無序不重復(fù)的元素的組合可變集合(set)不可變集合(frozenset)36去重集合37>>>aSet={1,2,3}>>>names=['Mayue','Lilin','Wanqi','Mayue','Lilin']>>>names['Mayue','Lilin','Wanqi','Mayue','Lilin']>>>nameset=set(names)>>>nameset{'Mayue','Wanqi','Lilin'}>>>type(nameset)<class'set'>Source集合的創(chuàng)建>>>aSet=set('hello')>>>aSet{'h','e','l','o'}>>>fSet=frozenset('hello')>>>fSetfrozenset({'h','e','l','o'})>>>type(aSet)<class'set'>>>>type(fSet)<class'frozenset'>Source38大括號集合的基本操作>>>aSet=set('sunrise')>>>bSet=set('sunset')>>>'u'

inaSetTrue>>>aSet==bSetFalse>>>aSet<bSetFalse>>>set('sun')<aSetTrueSource數(shù)學(xué)符號Python符號innotin===≠!=?<?<=?>?>=標(biāo)準類型運算符39集合的基本操作>>>aSet=set('sunrise')>>>bSet=set('sunset')>>>aSet&bSet{'u','s','e','n'}>>>aSet|bSet{'e','i','n','s','r','u','t'}>>>aSet-bSet{'i','r'}Source數(shù)學(xué)符號Python符號∩&∪|-或\-Δ^集合類型運算符運算符可復(fù)合&=|=-=^=40>>>aSet=set('sunrise')>>>bSet=set('sunset')>>>aSet^bSet{'i','r','t'}>>>aSet-=set('sun')>>>aSet{'e','i','r'}Source集合內(nèi)建函數(shù)41>>>aSet={1,2,3}>>>type(aSet)<class'set'>>>>len(aSet)3Sourcelen()集合內(nèi)建函數(shù)>>>aSet=set('sunrise')>>>bSet=set('sunset')Sourceissubset(t)issuperset(t)union(t)intersection(t)difference(t)symmetric_difference(t)copy()42面向所有集合>>>aSet.issu

溫馨提示

  • 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

提交評論