Python3字典

每個鍵是從它的值由冒號(:),即在專案之間用逗號隔開,整個東西是包含在大括弧中。沒有任何專案一個空字典只寫兩個大括弧,就像這樣:{}.

鍵在一個字典中是唯一的,而值則可以重複。字典的值可以是任何類型,但鍵必須是不可變的數據的類型,例如:字串,數字或元組這樣的類型。

訪問字典中的值

要訪問字典元素,你可以使用方括號和對應鍵,以獲得其對應的值。下麵是一個簡單的例子 -

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
當執行上面的代碼,它產生以下結果 -
dict['Name']:  Zara
dict['Age']:  7
如果我們試圖使用一個鍵,但這是不字典訪問資料項目的一部分,我們會得到一個錯誤如下 -
#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Alice']: ", dict['Alice']
當執行上面的代碼,它產生以下結果 -
dict['Zara']:
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

更新字典

可以通過添加新條目或鍵值對,修改現有條目,或刪除現有條目,更新詞典的簡單例子如下圖所示 -
#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School" # Add new entry


print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
當執行上面的代碼,它產生以下結果 -
dict['Age']:  8
dict['School']:  DPS School

刪除字典元素

可以刪除單個字典元素或清除字典的全部內容。也可以在一個單一的操作刪除整個詞典。

要明確刪除整個詞典,只要用 del 語句就可以做到。下麵是一個簡單的例子 -
#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

del dict['Name'] # remove entry with key 'Name'
dict.clear()     # remove all entries in dict
del dict         # delete entire dictionary

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
這將產生以下結果。請注意,將引發一個異常,因為執行 del dict 後字典不存在了-
dict['Age']:
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable
注: del() 方法是在後續部分討論。

字典鍵的屬性

字典的值沒有限制。它們可以是任意Python對象,無論是標準的對象或用戶定義的對象。但是,鍵卻不能這樣使用。

還有要記住字典的鍵的重要兩點 -

(一)每個鍵對應多個條目是不允許的。這意味著重複鍵是不允許的。當鍵分配過程中遇到重複,以最後分配的為准。例如 -

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}

print ("dict['Name']: ", dict['Name'])
當執行上面的代碼,它產生以下結果 -
dict['Name']:  Manni 

(二)鍵必須是不可變的。這意味著可以使用字串,數字或元組作為字典的鍵,但是像['key']是不允許的。下麵是一個簡單的例子:

#!/usr/bin/python3

dict = {['Name']: 'Zara', 'Age': 7}

print ("dict['Name']: ", dict['Name'])

當執行上面的代碼,它產生以下結果 -

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    dict = {['Name']: 'Zara', 'Age': 7}
TypeError: list objects are unhashable

內置字典函數和方法 -

Python包括以下字典函數 -
SN
函數與描述
1

cmp(dict1, dict2)

比較這兩個字典的元素。
2

len(dict)

計算字典的總長度。這等於字典中的項的數目。
3

str(dict)

產生字典的可列印字串表示
4

type(variable)

返回傳遞變數的類型。如果傳遞變數是字典,那麼它會返回一個字典類型。

Python中包括以下字典方法 -
SN
描述與方法
1

dict.clear()

刪除字典 dict 中的所有元素
2

dict.copy()

返回字典 dict 的淺表副本
3

dict.fromkeys()

使用seq的鍵和值來設置創建新字典
4

dict.get(key, default=None)

對於鍵key,返回其值或default如果鍵不存在於字典中
5

dict.has_key(key)

返回true如果在字典dict有存在鍵key,否則為false
6

dict.items()

返回 dict (鍵,值)元組對的列表
7

dict.keys()

返回字典 dict 的鍵列表
8

dict.setdefault(key, default=None)

類似於get()方法,但會設定dict[key]=default,如果鍵不存在於dict中
9

dict.update(dict2)

添加字典dict2的鍵值對到dict
10

dict.values()

返回字典dict值列表

上一篇: Python3元組 下一篇: Python3日期和時間