Python字典類型
今天將會介紹一種在python中十分常見的組合數據類型——字典
通過一些實例來理解字典中的常規操作
什么是字典類型?
列表中查找是通過整數的索引(元素在列表中的序號)來實現查找功能。
但很多應用程序需要更加靈活的查找方式,即表示索引的鍵和對應的值組成。
比如說:“用戶名”查找“手機號”,“學號”查找“學院班級”等等
通過任意鍵信息查找一組數據中值信息的過程叫“映射”
Python語言中,通過字典來實現映射。
簡單理解為,字典為處理信息與信息相對應映射關系的組合數據類型。
字典類型操作
創建一個字典,內容為國家與首都的映射,並添加中國、美國、法國為例
#第一中添加方式 d={"中國":"北京","美國":"華盛頓"} #第二種添加方式 d["法國"]="巴黎" print(d)
這里需要注意一點,字典和集合 一樣具有無序性,所以返回結果可能和輸入順序有所差別
字典類型主要結構為 :鍵對應值;
在上例中,中國、美國、法國就相當於鍵,北京、華盛頓、巴黎屬於值。
1.keys()
函數作用為返回所有“鍵”信息,也就是返回“中國、美國、法國”,不需要傳入任何參數,使用方法如下:
d={"中國":"北京","美國":"華盛頓","法國":"巴黎"} print(d.keys())
結果如下所示:
提示:可以將結果以列表的方式輸入,只需要加入list()轉換一下
2.values()
與keys()函數作用相似,作用為返回字典的值信息,也就是返回“北京、華盛頓、巴黎”,同樣不需要參數,使用方法如下
d={"中國":"北京","美國":"華盛頓","法國":"巴黎"} print(d.values())
結果如下所示:
3.items()
其主要作用為返回字典所有的鍵值對,看起來和直接打印字典本身差距不大,那專門來對比下效果:
d={"中國":"北京","美國":"華盛頓","法國":"巴黎"}
#直接打印 print(d)
#打印鍵值對 print(d.items())
效果如下:
很明顯,通過items()打印鍵值對,鍵值對會通過()來表示相關關系
4.get(<key>,<default>)
get()函數為判斷函數,判斷鍵是否有對應的值,若對應值存在 則返回對應值,若不存在則返回參數值,若未輸入參數值,默認為none
舉例子:輸入鍵——中國,存在值——北京,則返回“北京”,輸入鍵——泰國,不存在值,則返回none
d={"中國":"北京","美國":"華盛頓","法國":"巴黎"} # 鍵中國有對應值,返回北京 print(d.get("中國")) # 鍵泰國無對應值、無傳入默認值,返回none print(d.get("泰國")) # 鍵意大利無對應值,有傳入默認值"字典中無此數據" 返回默認值"字典中無此數據" print(d.get("意大利","字典中無此數據"))
結果如下:
5.pop(<key>,<default>)
pop()函數與get()相似,使用方法相同,但是,pop()函數在get()的基礎上,多加了一步,若鍵存在則在返回相應值的同時刪除對應鍵,若不存在同get ()
d={"中國":"北京","美國":"華盛頓","法國":"巴黎"} print(d) print(d.pop("法國")) print(d)
為效果明顯,先打印原字典,通過pop刪除后再打印字典,如下圖所示,法國的鍵值對消失不見()
6.popitem()
函數作用為,隨機從字典中選取一個鍵值對,並且以元組(key,walue)的形式返回
d={"中國":"北京","美國":"華盛頓","法國":"巴黎"} print(d.popitem())
7.clear()
如同英文直譯一樣, clear()的作用為刪除所有的鍵值對,也就是清空字典內部所有數據
d={"中國":"北京","美國":"華盛頓","法國":"巴黎"} print(d) d.clear() print(d)
結果如下:
8.del<d>[<key>]
操作為傳入鍵,刪除對應的鍵值對.
d={"中國":"北京","美國":"華盛頓","法國":"巴黎"} print(d) del d["法國"] print(d)
結果為:
9<key>in<d>
屬於判斷函數,若鍵在字典中為則返回true 否則返回false
d={"中國":"北京","美國":"華盛頓","法國":"巴黎"} print("美國" -in d)
字典實戰演練
例子1
D={“張三”:88,“李四”:90,“王五”:73,“趙六”:82}
1.字典中添加鍵值對“錢七”:90
D={"張三":88,"李四":90,"王五":73,"趙六":82} D["錢七"]=90 print(D)
2.修改王五的信息為93
D={"張三":88,"李四":90,"王五":73,"趙六":82} D["王五"]=93 print(D)
3.刪除趙六對應的鍵值對
D={"張三":88,"李四":90,"王五":73,"趙六":82} D.pop("趙六") print(D)
例子2:
輸入一串字符串,統計每一個字母出現的次數
s=input("輸入:") d={} for i in s: if i not in d : d[i]=1 else: d[i]=d[i]+1 print(d)