希望對你有幫助,陌生人
字典的建立:
- phonebook = {'Alice':'2341','Beth':'9102','zdf':'1821355'}
items = [('name','Gunmby'),('age',42)]
d = dict(items)
- d = dict(name='Gumby',age=43)
字典的操作
取大小:len(d)
d[k]=v :指派 or 添加值
del d[k]:删除鍵值對
k in d :檢查是否包含該鍵
例
把資料通過類似于JSON格式的方式存儲起來,輸入需要的資訊就能查找到你要的值;我的名字是ZDF,我要查找的是電話号碼,這樣需要查的資料的鍵已經有了,通過這個鍵就可以在字典中取到相應的資料。
people = {
'Alice':{
'phone':'2314',
'addr':'Foo drive 23'
},
'ZDF':{
'phone':'1821355',
'addr':'wenshan'
}
}
labels = {
'phone':'phone number',
'addr' :'address'
}
name = raw_input('Name: ')
request = raw_input('Phone number (p) or address (a)? ')
if request == 'p' : key = 'phone'
if request == 'a' : key = 'addr'
if name in people : print "%s's %s is %s." % (name,labels[key],people[name][key])
字典的格式化字元串
template = '''<html>
<head><title>%(title)s</title>
</head>
<body>
<h1>%(h1)s</h1>
<p>%(text)s</p>
</body>
</html>
'''
>>> template
'<html>\n<head><title>%(title)s</title>\n</head>\n<body>\n<h1>%(h1)s</h1>\n<p>%(text)s</p>\n</body>\n</html>\n'
data = {'title':'this is dict','h1':'dict','text':'my name is zdf'}
print template % data
字典方法
clear():清空字典
copy() :潛複制,字典中有清單不能完全複制,而是共同指向一個清單,這樣進行修改清單的操作實際是對同一個清單進行操作
deepcopy()深複制,字典中清單各自指向各自的清單
get(key,defalut):通路不存在的值不會報錯,會傳回預設值,第二個參數就是當通路的key值不存在時傳回第二個參數中的值
setdefault:和get有點類似,但是它還能在字典中不含給定鍵的情況下設定相應的鍵值
has_key(key):d.has_key(k) 相當于表達式 k in d 注:python3不包括這個函數
fromkeys():建立清單的另一種方法
items():将字典所有項以清單方式放回,無順序
keys():将字典中所有key值以清單形式傳回
values():傳回字典中的所有value
iteritems() :傳回的是一個鍵值疊代器(注:python3不包括這個函數)
iterkeys():傳回的是一個鍵疊代器(注:python3不包括這個函數)
itervalues():傳回的是一個疊代器(注:python3不包括這個函數)
pop(key):用來獲得對應給定的鍵值,然後從字典中删除。
popitem():随機彈出字典裡的鍵值對
update(dict)将一個字典項更新到另一個字典中,如果存在,直接複制;否則添加新的鍵值對。
fromkeys()
{}.fromkeys(['name','age'])
{'age': None, 'name': None}
dict.fromkeys(['name','age'])
{'age': None, 'name': None}
dict.fromkeys(['name','age'],'1')
{'age': '1', 'name': '1'}
update(dict)
>>> d = {}.fromkeys(['gender','age'],'1')
>>> z = {}.fromkeys(['name','age'],'1')
>>> z.update(d)
>>> z
{'gender': '1', 'name': '1', 'age': '1'}
>>> d
{'gender': '1', 'age': '1'}