Python 詞典
python 詞典
在dictionary中,每個鍵都用冒號(:)分隔,它們之間用逗號隔開,整個事物用大括號括起來。沒有任何項目的空字典僅用兩個大括號編寫,如下所示:{}。
鍵在字典中是唯一的,而值可能不是。字典的值可以是任何類型,但鍵必須是不可變的數據類型,例如字符串,數字或元組。
在詞典中訪問值
要訪問字典元素,可以使用熟悉的方括號和密鑰來獲取它的值。以下是一個簡單的例子 -
#!/usr/bin/python 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/python dict = {'name': 'zara', 'age': 7, 'class': 'first'} print "dict['alice']: ", dict['alice']
當上面的代碼被執行時,它會產生以下結果 -
dict['alice']: traceback (most recent call last): file "test.py", line 4, in <module> print "dict['alice']: ", dict['alice']; keyerror: 'alice'
更新詞典
您可以通過添加新條目或鍵值對,修改現有條目或刪除現有條目來更新字典,如簡單示例中所示 -
#!/usr/bin/python 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/python 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['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對象,無論是標準對象還是用戶定義的對象。但是,對于這些密鑰也是如此。
關于字典鍵有兩點要記住 -
(a) 每個密鑰不得超過一個條目。這意味著不允許重復密鑰。在分配過程中遇到重復鍵時,最后一次分配會勝出。例如 -
#!/usr/bin/python dict = {'name': 'zara', 'age': 7, 'name': 'manni'} print "dict['name']: ", dict['name']
當上面的代碼被執行時,它會產生以下結果 -
dict['name']: manni
(b) 鑰匙必須是不可變的。這意味著您可以使用字符串,數字或元組作為字典鍵,但不允許使用['key']。以下是一個簡單的例子 -
#!/usr/bin/python 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