- 機器學習:基于OpenCV和Python的智能圖像處理
- 高敬鵬 江志燁 趙娜
- 992字
- 2020-06-04 18:30:30
2.6 字典
本節將介紹能夠將相關信息關聯起來的Python字典,主要針對如何訪問和修改字典中的信息進行介紹。鑒于字典可存儲的信息量幾乎不受限制,因此下面會演示如何遍歷字典中的數據。
通過字典能夠更準確地為各種真實物體建模。例如,可以創建一個表示人的字典,然后想在其中存儲多少信息就存儲多少信息,如姓名、年齡、地址、職業和要描述的其他方面。
2.6.1 字典的創建
字典就是用大括號括起來的“關鍵字:值”對的集合體,每一個“關鍵字:值”對被稱為字典的一個元素。
創建字典的一般格式為:
字典名={[關鍵字1:值1[,關鍵字2:值2, ……,關鍵字n:值n]]}
其中,關鍵字與值之間用“:”分隔,元素與元素之間用逗號分隔。字典中關鍵字必須是唯一的,值可以不唯一。字典的元素可以是列表、元組和字典。
>>>d1 = {'name':{ 'first': 'Li', 'last': 'Hua'}, 'age':18} >>>d1 {'name':{ 'first': 'Li', 'last': 'Hua'}, 'age':18} >>>d2 = {'name': 'LiHua', 'score':[80,65,98]} >>>d2 {'name': 'LiHua', 'score':[80,65,98]} >>>d3={'name': 'LiHua', 'score':(80,65,98)} >>>d3 {'name': 'LiHua', 'score':(80,65,98)}
當“關鍵字:值”對都省略時會創建一個空的字典,如下所示。
>>>d4 = {}
>>>d5={'name': 'LiHua', 'age': '18'} >>>d4, d5 {{}, {'name': 'LiHua', 'age': '18'}}
另外,在Python中還有一種創建字典的方法,即dict函數法。
>>>d6=dict() #使用dict創建一個空的字典 >>>d6 {} >>>d7=dict((['LiHua',100], ['LiMing',95])) #使用dict和元組創建一個字典 >>>d7 {'LiHua':100, 'LiMing': 95} >>>d8=([['LiHua',100], ['LiMing',95]]) #使用dict和列表創建一個字典 >>>d8 {'LiHua':100, 'LiMing': 95}
2.6.2 字典的常規操作
在Python中定義了很多字典的操作方法,下面介紹幾個比較重要方法,更多的字典操作可以上網查詢。
1.訪問
在Python中可以通過關鍵字進行訪問,一般格式為:
字典[關鍵字]
例如:
>>>dict_1={'name': 'LiHua', 'score':95} #以字典中的關鍵字為索引
>>>dict_1['score']
95
2.更新
在Python中更新字典的格式一般為:
字典名[關鍵字]=值
如果在字典中已經存在該關鍵字,則修改它;如果不存在,則向字典中添加一個這樣的新元素。
>>>dict_2={'name': 'LiHua', 'score':95} #創建一個字典 >>>dict_2['score'] = 85 #字典中已存在’score’關鍵字,修改 >>>dict_2 {'name': 'LiHua', 'score':85} >>>dict_2['age']=18#字典中不存在’age’關鍵字,添加 >>>dict_2 {'name': 'LiHua', 'score':85, 'age':18}
3.刪除
在Python中刪除字典有很多種方法,這里介紹del和clear方法。del方法的一般格式如下:
del字典名[關鍵字]#刪除關鍵字對應的元素 del字典名 #刪除整個字典
字典的刪除如下所示。
>>>dict_3={'name': 'LiHua', 'score':95, 'age':18} #創建一個字典 >>>del dict_3['score'] #刪除score關鍵字 >>>dict_3 {'name': 'LiHua', 'age':18} >>>dict_3.clear() #清除字典內容 >>>dict_3 {}
4.其他操作方法
在Python中,字典實際上也是對象,因此,Python定義了很多比較常用的字典操作方法,具體如表2-3所示。
表2-3 字典常用方法

2.6.3 字典的遍歷
對字典進行遍歷一般會使用for循環,但建議在訪問之前使用in或not in判斷字典的關鍵字是否存在。字典的遍歷操作如下所示。
>>>dict_4={'name': 'LiHua', 'score':95 } #創建一個字典 >>>forkeyindict_4.keys():#遍歷字典的關鍵字 >>>print(key, dict_4[key]) name LiHua score 95 >>>for value in dict_4.values(): #遍歷字典的值 >>>print(value)
LiHua
95
>>>for item in dict_4.items(): #遍歷字典的“關鍵字:值”對
>>>print(ite)
('name', 'LiHua')
('score', 95)