字典
字典是 Python 中另一種可變容器模型,能夠存儲任意類型的對象。字典中的每個鍵值對 (key:value
) 都是用冒號 :
分割,而每個鍵值對之間則是用逗號 ,
分割,整個字典被包含在花括號 {}
中。如下所示:
d = {key1: value1, key2: value2}
注意:Python 中有一個內建函數 dict
,因此不建議將變量命名為 dict
。
字典的特性
- 鍵一般是唯一的。如果存在重複鍵,則最後一個鍵值對會替換前面的。
- 值不需要唯一。值可以是任意數據類型,但鍵必須是不可變的(如字符串、數字或元組)。
範例:
tinydict = {'a': 1, 'b': 2, 'b': '3'} print(tinydict['b']) # 輸出: '3' print(tinydict) # 輸出: {'a': 1, 'b': '3'}
在這個範例中,b
鍵對應的值最後為 '3'
,因為重複鍵的後一個值覆蓋了前一個。
創建與訪問字典
可以使用 {}
創建字典,也可以在創建後向字典中添加鍵值對。例如:
tinydict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
另外,也可以這樣創建字典:
tinydict1 = {'abc': 456} tinydict2 = {'abc': 123, 98.6: 37}
要訪問字典中的值,只需將相應的鍵放入方括號中:
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} print("tinydict['Name']:", tinydict['Name']) # 輸出: Zara print("tinydict['Age']:", tinydict['Age']) # 輸出: 7
注意:如果嘗試訪問不存在的鍵,將會引發 KeyError
錯誤。
修改字典
可以向字典添加新的鍵值對,或者修改現有的鍵值對:
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} tinydict['Age'] = 8 # 更新 Age 的值 tinydict['School'] = "RUNOOB" # 添加新的鍵值對 print("tinydict['Age']:", tinydict['Age']) # 輸出: 8 print("tinydict['School']:", tinydict['School']) # 輸出: RUNOOB
刪除字典元素
可以使用 del
語句刪除字典中的單個元素,或使用 clear()
方法清空字典。也可以直接刪除整個字典:
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} del tinydict['Name'] # 刪除 'Name' 鍵對應的條目 tinydict.clear() # 清空字典 del tinydict # 刪除字典 # 下面的代碼會引發 NameError,因為字典已被刪除 print("tinydict['Age']:", tinydict['Age'])
字典鍵的特性
字典中的鍵必須是不可變的,因此可以使用字符串、數字或元組作為鍵,但不能使用列表。如果同一鍵出現多次,最後出現的鍵值對將會覆蓋前面的:
tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': 'Manni'} print("tinydict['Name']:", tinydict['Name']) # 輸出: Manni
在這裡,Name
鍵對應的值為 'Manni'
,因為它覆蓋了先前的 'Runoob'
。
以下的範例會引發錯誤,因為列表不能作為字典的鍵:
tinydict = {['Name']: 'Zara', 'Age': 7}
這將會產生 TypeError
錯誤,因為列表是可變的,不能作為字典的鍵。
字典內建函數與方法
Python 提供了多種操作字典的內建函數和方法。
內建函數:
- len(dict):計算字典中元素的個數(即鍵的總數)。
- str(dict):輸出字典的可打印字符串表示形式。
- type(variable):返回變量的類型,如果變量是字典則返回
dict
類型。
內建方法:
- dict.clear():刪除字典中的所有元素。
- dict.copy():返回字典的淺複製。
- dict.fromkeys(seq[, val]):創建一個新字典,以序列
seq
中的元素作為字典的鍵,val
作為鍵對應的初始值。 - dict.get(key, default=None):返回指定鍵的值,如果鍵不在字典中則返回
default
值。 - dict.items():以列表返回可遍歷的
(鍵, 值)
元組數組。 - dict.keys():以列表返回字典中的所有鍵。
- dict.pop(key[, default]):刪除字典中給定鍵對應的值,並返回被刪除的值。如果鍵不存在,則返回
default
值。 - dict.update(dict2):將字典
dict2
的鍵值對更新到當前字典中。