Python 詞典

python 詞典

在dictionary中,每個(gè)鍵都用冒號(hào)(:)分隔,它們之間用逗號(hào)隔開,整個(gè)事物用大括號(hào)括起來。沒有任何項(xiàng)目的空字典僅用兩個(gè)大括號(hào)編寫,如下所示:{}。

鍵在字典中是唯一的,而值可能不是。字典的值可以是任何類型,但鍵必須是不可變的數(shù)據(jù)類型,例如字符串,數(shù)字或元組。

 

在詞典中訪問值

要訪問字典元素,可以使用熟悉的方括號(hào)和密鑰來獲取它的值。以下是一個(gè)簡(jiǎn)單的例子 -

#!/usr/bin/python

dict = {'name': 'zara', 'age': 7, 'class': 'first'}
print "dict['name']: ", dict['name']
print "dict['age']: ", dict['age']

當(dāng)上面的代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果 -

dict['name']:  zara
dict['age']:  7

如果我們嘗試使用不屬于字典一部分的鍵訪問數(shù)據(jù)項(xiàng),我們會(huì)得到如下錯(cuò)誤 -

#!/usr/bin/python

dict = {'name': 'zara', 'age': 7, 'class': 'first'}
print "dict['alice']: ", dict['alice']

當(dāng)上面的代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果 -

dict['alice']:
traceback (most recent call last):
   file "test.py", line 4, in <module>
      print "dict['alice']: ", dict['alice'];
keyerror: 'alice'

 

更新詞典

您可以通過添加新條目或鍵值對(duì),修改現(xiàn)有條目或刪除現(xiàn)有條目來更新字典,如簡(jiǎn)單示例中所示 -

#!/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']

當(dāng)上面的代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果 -

dict['age']:  8
dict['school']:  dps school

 

刪除字典元素

您可以刪除單個(gè)字典元素,也可以清除字典的全部?jī)?nèi)容。您也可以在一個(gè)操作中刪除整個(gè)字典。

要顯式刪除整個(gè)字典,只需使用 del 語句。以下是一個(gè)簡(jiǎn)單的例子 -

#!/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']

這會(huì)產(chǎn)生以下結(jié)果。請(qǐng)注意,由于 del 字典不再存在之后會(huì)引發(fā)異常-

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()方法在后面的章節(jié)中討論。

 

字典鍵的屬性

字典值沒有限制。它們可以是任何任意的python對(duì)象,無論是標(biāo)準(zhǔn)對(duì)象還是用戶定義的對(duì)象。但是,對(duì)于這些密鑰也是如此。

關(guān)于字典鍵有兩點(diǎn)要記住 -

(a) 每個(gè)密鑰不得超過一個(gè)條目。這意味著不允許重復(fù)密鑰。在分配過程中遇到重復(fù)鍵時(shí),最后一次分配會(huì)勝出。例如 -

#!/usr/bin/python

dict = {'name': 'zara', 'age': 7, 'name': 'manni'}
print "dict['name']: ", dict['name']

當(dāng)上面的代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果 -

dict['name']:  manni

(b) 鑰匙必須是不可變的。這意味著您可以使用字符串,數(shù)字或元組作為字典鍵,但不允許使用['key']。以下是一個(gè)簡(jiǎn)單的例子 -

#!/usr/bin/python

dict = {['name']: 'zara', 'age': 7}
print "dict['name']: ", dict['name']

當(dāng)上面的代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果 -

traceback (most recent call last):
   file "test.py", line 3, in <module>
      dict = {['name']: 'zara', 'age': 7};
typeerror: list objects are unhashable

下一節(jié):python 二維數(shù)組

python 數(shù)據(jù)結(jié)構(gòu)

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频