1.clear
清除字典中所有的項。原地操作,無返回值(或說返回值爲None)。
>>> d = {}
>>> d['name'] = 'Gumby'
>>> d['age'] = 42
>>> d
{'age':42, 'name': 'Gumby'}
>>> returned_value = d.clear()
>>> d
{}
>>> print returned_value
None
#此方法會清除原始字典內容
2.copy
返回具有相同key-value的新字典,爲淺複製(shallow 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']}
#替換不會改變原字典,修改會改變原字典
#避免這個問題,使用深複製(deep copy)
>>> from copy import deepcopy
>>> d = {}
>>> d['names'] = ['Alfred', 'Bertrand']
>>> c = d.copy()
>>> e = deepcopy(d)
>>> d['names'].append('Clive')
>>> c
{'names': ['Alfred', 'Bertrand', 'Clive']}
>>> e
{'names': ['Alfred', 'Bertrand']} #深複製沒有因爲原字典的改變而改變
3.fromkeys
使用給定的key建立新字典,每個key默認對應的值爲None。
>>> d_a = {}
>>> d_a.fromkeys(['name', 'age'])
{'age': None, 'name': None}
#可自定義None值爲其他
>>> d_a.fromkeys(['name', 'age'],'(unknown)')
{'age': '(unknown)', 'name': '(unknown)'}
4.get
寬鬆訪問字典的key值,訪問的key不存在時,返回None,可自定義None.
>>> d = {}
>>> print d.get('name')
None
>>> print d.get('name','N/A')
N/A
>>>
5.has_key
檢查字典中是否有給出的key,表達式d.has_key(k)等價於k in d。(3.0中不包括這個方法)
>>> d = {}
>>> d.has_key('name')
False
>>> d['name'] = 'Eric'
>>> d.has_key('name')
True
6.items和iteritems
items方法將所有的字典項以列表的方式返回,列表中的項由(key,value)組成,返回項無特殊順序。
>>> d= {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
>>> d.items()
[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python Web Site')]
iteritems返回一個迭代對象而不是列表
>>> it = d.iteritems()
>>> it
<dictionary-itemiterator object at 0x020699F0>
>>> list(it) #Convert the iterator to a list
[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python Web Site')]
7.keys和iterkeys
keys方法將字典中的key以列表形式返回,而iterkeys則返回針對鍵的迭代器。
>>> d.keys()
['url', 'spam', 'title']
>>> d.iterkeys()
<dictionary-keyiterator object at 0x02075570>
>>> list(d.iterkeys())
['url', 'spam', 'title']
8.pop
用來獲得對應於給定key的value,然後將這個key-value從字典中移除。
>>> d = {'x': 1, 'y': 2}
>>> d.pop('x')
1
>>> d
{'y': 2}
9.popitem
類似於list.pop,list.pop會彈出列表最後一個元素。popitem彈出隨機項,因爲字典中無順序概念。(不用獲取key就可以移除項。)
>>> d
{'url': 'http://www.python.org', 'spam': 0, 'title': 'Python Web Site'}
>>> d.popitem()
('url', 'http://www.python.org')
#字典是無序的,所以沒有append方法。
10.setdefault
類似get方法,能夠獲得給定key的value,此外setdefault還能在自動重不含有給定key的情況下設定相應的key-value。
>>> d = {}
>>> d.setdefault('name', 'N/A')
'N/A'
>>> d
{'name': 'N/A'}
>>> d['name'] = 'Gumby'
>>> d.setdefault('name', 'N/A')
'Gumby'
>>> d
{'name': 'Gumby'}
#當key-value不存在時,setdefault返回默認值並相應地更新字典。如果key存在,那麼就返回與其對應的value,但不改變字典。默認值可選,默認返回None。
11.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
{'url': 'http://www.python.org', 'changed': 'Mar 14 22:09:15 MET 2008', 'title': 'Python Language Website'}
12.values和itervalues
values方法以列表的形式返回字典中的值(itervalues返回值的迭代器)。與返回值的列表不同的是,返回值的列表中可以包含重複的元素:
>>> d = {}
>>> d[1] = 1
>>> d[2] = 2
>>> d[3] = 3
>>> d[4] = 1
>>> d.values()
[1, 2, 3, 1]
>>> d.itervalues()
<dictionary-valueiterator object at 0x02075660>
>>> list(d.itervalues())
[1, 2, 3, 1]