字典的使用
字典有很多好用的地方。字典每個(gè)元素都有鍵和值。如同現(xiàn)代漢語(yǔ)字典中的拼音和對(duì)應(yīng)的文字。字典中的鍵是唯一的,而值不一定唯一。你看,和現(xiàn)代漢語(yǔ)字典多么的相似。
經(jīng)典字典使用函數(shù)
dict:通過(guò)其他映射(比如其他字典)或者(鍵,值)這樣的序列對(duì)建立字典。當(dāng)然dict成為函數(shù)不是十分確切,它本質(zhì)是一種類型。如同list。items=[('name','zhang'),('age',42)]d=dict(items)d['name']
簡(jiǎn)單的電話本示例:
# A simple database# A dictionary with person names as keys. Each person is rePResented as# another dictionary with the keys 'phone' and 'addr' referring to their phone# number and address, respectively.people = { 'Alice': { 'phone': '2341', 'addr': 'Foo drive 23' }, 'Beth': { 'phone': '9102', 'addr': 'Bar street 42' }, 'Cecil': { 'phone': '3158', 'addr': 'Baz avenue 90' }}# Descriptive labels for the phone number and address. These will be used# when printing the output.labels = { 'phone': 'phone number', 'addr': 'address'}name = raw_input('Name: ')# Are we looking for a phone number or an address?request = raw_input('Phone number (p) or address (a)? ')# Use the correct key:if request == 'p': key = 'phone'if request == 'a': key = 'addr'# Only try to print information if the name is a valid key in# our dictionary:if name in people: print "%s's %s is %s." % / (name, labels[key], people[name][key])
x.clear()
y=x.copy()
from copy import deepcopyd={}d['names']=['as','sa']c=d.copy()dc=deepcopy(d)d['names'].append('ad')
fromkeys:給指定的鍵建立新的字典,每個(gè)鍵默認(rèn)對(duì)應(yīng)的值為none.
{}.fromkeys(['name','age'])
get:更為寬松的訪問(wèn)字典項(xiàng)的方法。d.get('name')
# A simple database using get()# Insert database (people) from Listing 4-1 here.labels = { 'phone': 'phone number', 'addr': 'address'}name = raw_input('Name: ')# Are we looking for a phone number or an address?request = raw_input('Phone number (p) or address (a)? ')# Use the correct key:key = request # In case the request is neither 'p' nor 'a'if request == 'p': key = 'phone'if request == 'a': key = 'addr'# Use get to provide default values:person = people.get(name, {})label = labels.get(key, key)result = person.get(key, 'not available')print "%s's %s is %s." % (name, label, result)
has_key:檢查字典中是否含有給定的鍵。d.haos_key()。值返回True ,False。
items:將所有字典項(xiàng)目一列表方式返回。
iteritems:方法大致相同,但是會(huì)返回一個(gè)迭代器而不是列表。
keys:將字典中的鍵以列表的方式返回。(注意區(qū)分和items的區(qū)別)
iterkeys:返回針對(duì)鍵的迭代器。
pop:獲得對(duì)應(yīng)給定鍵的值,然后將鍵-值對(duì)刪除。
popitem:彈出一個(gè)隨機(jī)的項(xiàng),
setdefault:既能獲得與給定鍵相關(guān)的值,又能在字典中不含有該鍵的情況下設(shè)定相應(yīng)的鍵值。
update:用一個(gè)字典更新另一個(gè)字典。
d={'1':'d','2':'s','3':'a'}x={'1','jk'}d.update(x)
values:以列表的形式返回字典中的值。
itervalues:返回值得迭代器。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注