一、創建和使用字典
1、創建字典
phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'}
?
2、dict,通過映射創建字典
>>> items=[('name','Gumby'),('age',34)]
>>> d=dict(items)
>>> d
顯示:{'name':'Gumby','age':'34'}
dict,通過關鍵字創建字典
>>> d=dict(name='Gumby',age=34)
>>> d
顯示:{'name':'Gumby','age':'34'}
?
3、字典格式化字符串
>>> phonebook{'Beth':'9102','Alice':'2334','Cecil','3258'}
>>> "Cecil's phone number is %(Cecil)s." % phonebook
顯示:"Cecil's phone number is 3258"
?
4、clear,清除字典中的全部項
5、copy,返回一個具有相同鍵-值對的新字典,這個方法實現的是淺復制
>>>x={'username':'admin','machines':['foo','bar','baz']}
>>>y=x.copy()
>>>y['username']='mlh'
>>>y['machines'].remove('bar')
>>>y
顯示:{'username':'mlh','machines':['foo','baz']}
>>>x
顯示:{'username':'admin','machines':['foo','baz']}
注意兩個結果的區別:在副本y中替換username的值不會改變x中的值,但是修改副本y中的machines的值,則會改變x中的值
deepcopy,深度復制,可以解決上面的問題
>>> from copy import deepcopy
>>> d={}
>>> d['names']=['Alfred','Bertrand']
>>> c=d.copy()
>>> dc=deepcopy(d)
>>> d['names'].append('Clive')
>>> c
顯示:{'names':['Alfred','Bertrand','Clive']}
>>> dc
顯示:{'names':['Alfred','Bertrand']}
?
6、fromkeys,使用給定的鍵建立新的字典
>>> {}.fromkeys(['name','age'])
顯示:{'name':None,'age':None}
采用dict的方法創建字典
>>> dict.fromkeys(['name','age'],'(123)') #默認值是可選的
顯示:{'name':'123','age':'123'}
?
7、get,用來訪問字典項
>>> d={}
>>> print(d['name']) #此時會報錯,說name鍵不存在
>>>print(d.get('name')) #此時不會報錯,輸出None
>>> print(d.get('name','N/A')) #還可以指定默認值
?
8、has_key,檢查字典中是否含有指定的鍵,在V2.6之后,V3.0之前有用,
>>> d={}
>>> d.has_key('name')
顯示: False
從V3.0開始,采用in的方式判斷
>>> 'name' in d
顯示:False
?
9、items,返回一個迭代器對象
>>> d={'title':'Python Web Site','url':'http://www.python.org','spam':0}
>>> d.items()
顯示:dict_items([('url','http://www.python.org'),('title','Python Web Site'),('spam',0)])
?
10、pop,將指定的鍵-值對從字典中刪除
>>> d={'x':1,'y':2}
>>> d.pop('x')
顯示:1
>>> d
顯示:{'y':2}
?
11、popitem,彈出隨機項
12、setdefault,在某種程度上類似于get,并且還能在字典中不含有給定鍵的情況下設定相應的鍵值
>>> d={}
>>> d.setdefault('name','N/A')
顯示:'N/A'
>>> d
顯示:{'name','N/A'}
>>> d['name']='Gumby'
>>> d.setdefault('name','N/A')
顯示:'Gumby'
>>> d
顯示:{'name':'Gumby'}
?
13、update,可以利用一個字典更新另一字典
>>> d={
'title':'Python Web Site',
'url':'http://www.python.org',
'changed':'Mar 14 22:09:15 MET 2008'
}
>>> x={'title':'Python Language WebSite'}
>>> d.update(x)
>>> d
顯示:
{
'title':'Python Language Website',
'url':'http://www.python.org',
'changed':'Mar 14 22:09:15 MET 2008'
}
?
14、Values,返回值的迭代器
>>> d={}
>>> d[1]=1
>>> d[2]=2
>>> d[3]=3
>>> d[4]=1
>>> d.values()
顯示:dict_values([1,2,3,1])
?