#!/usr/bin/python
# Filename: using_dict.py
# 'ab' is short for 'a'ddress'b'ook
ab = { 'Swaroop' : 'swaroopch@byteofpython.info',
'Larry' : 'larry@wall.org',
'Matsumoto' : 'matz@ruby-lang.org',
'Spammer' : 'spammer@hotmail.com'
}
print "Swaroop's address is %s" % ab['Swaroop']
# Adding a key/value pair
ab['Guido'] = 'guido@python.org'
# Deleting a key/value pair
del ab['Spammer']
print '\nThere are %d contacts in the address-book\n' % len(ab)
for name, address in ab.items():
print 'Contact %s at %s' % (name, address)
if 'Guido' in ab: # OR ab.has_key('Guido')
print "\nGuido's address is %s" % ab['Guido']
(源文件:code/using_dict.py)
輸出
$ python using_dict.py
Swaroop's address is swaroopch@byteofpython.info
There are 4 contacts in the address-book
Contact Swaroop at swaroopch@byteofpython.info
Contact Matsumoto at matz@ruby-lang.org
Contact Larry at larry@wall.org
Contact Guido at guido@python.org
Guido's address is guido@python.org
它如何工作
我們使用已經(jīng)介紹過的標(biāo)記創(chuàng)建了字典 ab。然后我們使用在列表和元組章節(jié)中已經(jīng)討論過的索引操作符來指定鍵,從而使用鍵/值對。我們可以看到字典的語法同樣十分簡單。
我們可以使用索引操作符來尋址一個鍵并為它賦值,這樣就增加了一個新的鍵/值對,就像在上面的例子中我們對 Guido 所做的一樣。
我們可以使用我們的老朋友——del 語句來刪除鍵/值對。我們只需要指明字典和用索引操作符指明要刪除的鍵,然后把它們傳遞給 del 語句就可以了。執(zhí)行這個操作的時候,我們無需知道那個鍵所對應(yīng)的值。
接下來,我們使用字典的 items 方法,來使用字典中的每個鍵/值對。這會返回一個元組的列表,其中每個元組都包含一對項(xiàng)目——鍵與對應(yīng)的值。我們抓取這個對,然后分別賦給 for..in 循環(huán)中的變量 name 和 address 然后在 for -塊中打印這些值。
我們可以使用 in 操作符來檢驗(yàn)一個鍵/值對是否存在,或者使用 dict 類的 has_key 方法。你可以使用 help(dict)來查看 dict 類的完整方法列表。
關(guān)鍵字參數(shù)與字典。如果換一個角度看待你在函數(shù)中使用的關(guān)鍵字參數(shù)的話,你已經(jīng)使用了字典了!只需想一下——你在函數(shù)定義的參數(shù)列表中使用的鍵/值對。當(dāng)你在函數(shù)中使用變量的時候,它只不過是使用一個字典的鍵(這在編譯器設(shè)計的術(shù)語中被稱作 符號表 )。