Python編程基礎(chǔ)(第3版)(微課版)課件 3.4 創(chuàng)建字典并進行增、刪、改、查等操作_第1頁
Python編程基礎(chǔ)(第3版)(微課版)課件 3.4 創(chuàng)建字典并進行增、刪、改、查等操作_第2頁
Python編程基礎(chǔ)(第3版)(微課版)課件 3.4 創(chuàng)建字典并進行增、刪、改、查等操作_第3頁
Python編程基礎(chǔ)(第3版)(微課版)課件 3.4 創(chuàng)建字典并進行增、刪、改、查等操作_第4頁
Python編程基礎(chǔ)(第3版)(微課版)課件 3.4 創(chuàng)建字典并進行增、刪、改、查等操作_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

創(chuàng)建字典并進行增、刪、改、查等操作1創(chuàng)建字典目錄解析字典的鍵與值2提取字典元素3字典常用方法和函數(shù)4【任務(wù)3-3】創(chuàng)建簡單的貨物庫存查詢程序5字典中的每個元素都具有與之對應(yīng)且唯一的鍵,元素就是鍵所對應(yīng)的值,鍵與值共同構(gòu)成一個映射關(guān)系,即鍵→值,每個鍵都可以映射到相應(yīng)的值。鍵和值的這種映射關(guān)系在Python中具體表示為鍵:值(key:value),鍵和值之間用冒號隔開,這里將其稱為“鍵值對”,字典中會包含多組鍵值對。字典中的鍵必須使用不可變數(shù)據(jù)類型的對象,例如數(shù)字、字符串、元組等,并且鍵是不允許重復(fù)的;而值則可以是任意類型的,且在字典中可以重復(fù)。解析字典的鍵與值1創(chuàng)建字典目錄解析字典的鍵與值2提取字典元素3字典常用方法和函數(shù)4【任務(wù)3-3】創(chuàng)建簡單的貨物庫存查詢程序5將字典中的一系列鍵和值按鍵值對的格式傳入花括號中,并用逗號將各鍵值對隔開,即可實現(xiàn)字典的創(chuàng)建,具體格式如下。1.使用花括號創(chuàng)建字典dict={key_1:value_1,key_2:value_2,…,key_n:value_n}1.使用花括號創(chuàng)建字典如果在花括號中不傳入任何鍵值對,那么將會創(chuàng)建一個空字典。當在花括號中重復(fù)傳入相同的鍵時,因為鍵在字典中不允許重復(fù),所以字典最終會采用最后出現(xiàn)的重復(fù)鍵的鍵值對。具體應(yīng)用示例如下。>>>mydict1={'myint':1,'myfloat':3.1415,'mystr':'name',...'myint':100,'mytuple':(1,2,3),'mydict':{}}#使用花括號創(chuàng)建字典>>>#對于重復(fù)鍵,采用最后出現(xiàn)的對應(yīng)鍵值對>>>print(mydict1){'myint':100,'myfloat':3.1415,'mystr':'name','mytuple':(1,2,3),'mydict':{}}>>>empty_dict={}#創(chuàng)建空字典>>>print(empty_dict){}可以使用dict函數(shù)創(chuàng)建字典。Python中dict函數(shù)的作用主要是將包含雙值子序列的序列對象轉(zhuǎn)換為字典類型,其中各雙值子序列中的第1個元素作為字典的鍵,第2個元素作為鍵對應(yīng)的值,即雙值子序列中包含鍵值對信息。還可以直接向dict函數(shù)傳入鍵和值創(chuàng)建字典,其中,鍵和值應(yīng)通過“=”隔開。這種創(chuàng)建方式不允許鍵重復(fù),否則會返回錯誤。具體格式如下。2.使用dict函數(shù)創(chuàng)建字典dict={key_1:value_1,key_2:value_2,…,key_n:value_n}>>>#使用dict函數(shù)轉(zhuǎn)換列表對象為字典對象>>>mydict1=dict([('myint',1),('myfloat',3.1415),('mystr','name'),...('myint',100),('mytuple',(1,2,3)),('mydict',{})])>>>print(mydict1){'myint':100,'myfloat':3.1415,'mystr':'name','mytuple':(1,2,3),'mydict':{}}>>>mydict2=dict(zero=0,one=1,two=2)#使用dict函數(shù)創(chuàng)建字典>>>print(mydict2){'zero':0,'one':1,'two':2}>>>empty_dict=dict()#創(chuàng)建空字典>>>print(empty_dict){}2.使用dict函數(shù)創(chuàng)建字典1創(chuàng)建字典目錄解析字典的鍵與值2提取字典元素3字典常用方法和函數(shù)4【任務(wù)3-3】創(chuàng)建簡單的貨物庫存查詢程序5與序列類型數(shù)據(jù)結(jié)構(gòu)不同,字典作為映射類型數(shù)據(jù)結(jié)構(gòu),并沒有索引的概念,也不支持切片操作等處理方法,字典中只有鍵和值之間的映射關(guān)系,因此對字典元素的提取主要是利用這種映射關(guān)系來實現(xiàn)的。通過在字典對象后緊跟方括號,在方括號中包含指定的鍵即可提取相應(yīng)的值,具體使用格式為dict[key],即字典[鍵]。傳入的鍵要存在于字典中,否則會返回一個錯誤。提取字典元素的示例如下。提取字典元素>>>mydict3={'spring':(3,4,5),'summer':(6,7,8),'autumn':(9,10,11),...'winter':(12,1,2)}>>>print(mydict3['autumn'])#提取鍵'autumn'對應(yīng)的值(9,10,11)>>>print(mydict3['Spring'])#提取字典中不存在的鍵'Spring'對應(yīng)的值KeyError:'Spring'在傳入鍵之前,測試字典中是否存在要傳入的鍵,如果不存在,就不進行提取操作。這種功能具體可以使用in關(guān)鍵字來實現(xiàn),示例代碼如下。1.提取前使用in關(guān)鍵字測試鍵是否存在>>>print('Spring'inmydict3)#使用in關(guān)鍵字測試鍵是否存在False字典方法get()能夠靈活地處理元素的提取,無論鍵是否存在,向get()方法傳入需要的鍵和一個代替值即可。若只傳入鍵,當鍵存在于字典中時,get()方法會返回對應(yīng)的值;當鍵不存在時,get()方法會返回None。具體應(yīng)用示例如下。2.使用字典方法get()>>>print(mydict3.get('summer'))#傳入存在的鍵并返回對應(yīng)值(6,7,8)>>>mydict3.get('Spring')#僅傳入不存在的鍵,不顯示任何內(nèi)容>>>print(mydict3.get('Spring'))#輸出get()方法返回的結(jié)果None>>>#傳入不存在的鍵并返回代替值>>>print(mydict3.get('Spring','Notinthisdict'))'Notinthisdict'1創(chuàng)建字典目錄解析字典的鍵與值2提取字典元素3字典常用方法和函數(shù)4【任務(wù)3-3】創(chuàng)建簡單的貨物庫存查詢程序5在Python的內(nèi)置數(shù)據(jù)結(jié)構(gòu)當中,列表和字典是最為靈活的數(shù)據(jù)結(jié)構(gòu)。類似于列表,字典也屬于可變數(shù)據(jù)結(jié)構(gòu),因此字典也含有豐富且功能強大的方法和函數(shù)。與列表一樣,字典中也有copy()方法,其作用是復(fù)制字典內(nèi)容并創(chuàng)建一個副本對象。由于上述字典處理會直接作用在字典對象上,而且各種處理方式包含多種方法。字典常用方法和函數(shù)利用字典元素提取方法傳入一個新的鍵,并對這個新鍵進行賦值操作,即dict[newkey]=new_value,字典中就會產(chǎn)生新的鍵值對。這種賦值操作可能會因為鍵不存在而出現(xiàn)錯誤,示例代碼如下。1.增添字典元素(1)使用鍵訪問賦值增添元素>>>country=dict(China='Beijing',...England='London',...France='Paris',...Canada='Ottawa')#使用dict函數(shù)創(chuàng)建字典>>>country_copy=country.copy()#創(chuàng)建一個字典對象副本>>>country_copy['Russia']='Moscow'#增添元素>>>print(country_copy){'China':'Beijing','England':'London','France':'Paris','Canada':'Ottawa','Russia':'Moscow'}字典方法update()能將兩個字典進行合并,傳入字典中的鍵值對會被復(fù)制并增添到調(diào)用此方法的字典對象中。如果兩個字典中存在相同的鍵,那么傳入字典中的鍵所對應(yīng)的值會替換掉調(diào)用update()方法的字典對象中的原有值,從而實現(xiàn)值更新的效果,示例代碼如下。1.增添字典元素(2)使用update()方法合并字典>>>others=dict(Australia='Canberra',...Japan='tokyo',...Canada='OTTAWA')>>>country.update(others)#使用update()方法增添多個元素>>>print(country){'China':'Beijing','England':'London','France':'Paris','Canada':'OTTAWA','Australia':'Canberra','Japan':'tokyo'}使用del語句刪除字典元素的具體格式為deldict[key],應(yīng)用示例如下。2.刪除字典元素(1)使用del語句刪除字典元素>>>country_copy=country.copy()>>>delcountry_copy['Canada']#使用del語句刪除副本對象中的元素>>>print(country_copy){'China':'Beijing','England':'London','France':'Paris','Australia':'Canberra','Japan':'tokyo'}向pop()方法傳入需要刪除的元素的鍵,將會返回對應(yīng)的值,并在字典當中刪除相應(yīng)的鍵值對。若將返回的結(jié)果賦值給變量,則相當于從字典當中抽離出值,示例如下。2.刪除字典元素(2)使用pop()方法刪除字典元素>>>old_value=country.pop('Canada')#將鍵對應(yīng)的值賦值給變量,并刪除鍵值對>>>print(old_value)'OTTAWA'>>>print(country){'China':'Beijing','England':'London','France':'Paris','Australia':'Canberra','Japan':'tokyo'}clear()方法可以刪除字典中的所有元素,最終返回一個空字典,代碼如下。2.刪除字典元素(3)使用clear()方法刪除字典元素>>>country_copy=country.copy()>>>country_copy.clear()#清空副本對象內(nèi)容>>>print(country_copy){}要修改字典中的某個元素,同樣可以使用鍵訪問賦值實現(xiàn),其格式為dict[key]=new_value。賦值操作在字典中的使用非常靈活,無論鍵是否存在于字典中,所賦予的新值都會覆蓋或增添到字典中。具體應(yīng)用示例如下。3.修改字典元素>>>country['Japan']='Tokyo'#直接將新值賦值給對應(yīng)元素>>>print(country){'China':'Beijing','England':'London','France':'Paris','Australia':'Canberra','Japan':'Tokyo'}在實際應(yīng)用當中,往往需要查詢某個鍵或值是否存在于字典當中,除了可以使用提取字典元素的方法進行查詢外,還可以使用Python中的in關(guān)鍵字進行查詢。字典的方法中有3種方法可以用于獲取鍵值信息。

(1)keys():用于獲取字典中的所有鍵。

(2)values():用于獲取字典中的所有值。

(3)itmes():用于獲取字典中的所有鍵值對。調(diào)用以上3種方法返回的結(jié)果分別是字典中鍵、值和鍵值對的迭代形式,可以通過list函數(shù)將返回結(jié)果轉(zhuǎn)換為列表類型,同時可以配合使用in關(guān)鍵字,判斷鍵值和鍵值對是否存在于字典中。具體應(yīng)用示例如下。4.查詢和獲取字典元素信息>>>#判斷鍵是否存在于字典中>>>print('Canada'incountry)False>>>#獲取所有鍵>>>all_keys=country.keys()#使用keys()方法獲取所有鍵>>>print(all_keys)dict_keys(['China','England','France','Australia','Japan'])>>>all_values=country.values()#使用values()方法獲取所有值>>>print(all_values)dict_values(['Beijing','London','Paris','Canberra','Tokyo'])4.查詢和獲取字典元素信息獲取鍵值信息>>>print('Beijing'inall_values)#判斷值是否存在于字典中True>>>print(list(all_values))#將值的迭代形式轉(zhuǎn)換為列表['Beijing','London','Paris','Canberra','Tokyo']>>>all_items=country.items()#使用items()方法獲取所有鍵值對>>>print(all_items)dict_items([('China','Beijing'),('England','London'),('France','Paris'),('Australia','Canberra'),('Japan','Tokyo')])>>>print(('Australia','Canberra')inall_items)#判斷鍵值對是否存在于字典中True>>>print(list(all_items))#將鍵值對的迭代形式轉(zhuǎn)換為列表[('China','Beijing'),('England','London'),('France','Paris'),('Australia','Canberra'),('Japan','Tokyo')]4.查詢和獲取字典元素信息如果需要對字典進行更復(fù)雜、更高級的處理,那么需要靈活地將這些方法和函數(shù)進行組合運用。例如,利用值來查詢所有與之對應(yīng)的鍵,示例代碼如下。

4.查詢和獲取字典元素信息>>>test={'A':100,'B':300,'C':Tru

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論