1、clear
清除字典中所有的项。
>>> x = {}
>>> y = x
>>> x['key'] = 'value'
>>> y #共享X的内容
{'key': 'value'}
>>> x.clear() #如果用 x={ }置空,y的内容不会消失
>>> y
{}
2、copy
返回一个具有相同键--值对的新字典(浅复制 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()
>>> dc = deepcopy(d)
>>> d['names'].append('Clive')
>>> c
{'names': ['Alfred', 'Bertrand', 'Clive']}
>>> dc
{'names': ['Alfred', 'Bertrand']}
3、fromkeys
使用给定的键建立新的字典,每个键默认对应的值为None
>>> {}.fromkeys(['name','age'])
{'age': None, 'name': None}
>>> dict.fromkeys(['name','age'])
{'age': None, 'name': None}
>>> dict.fromkeys(['name','age'],'(unknown)') # 指定值
{'age': '(unknown)', 'name': '(unknown)'}
4、get
访问字典项的方法(当项不存在时不会报错)
>>> d = {}
>>> print d.get('name') # 空字典,返回一个None
None
>>> d.get('name','N/A')
'N/A'
>>> d['name'] = 'Eric'
>>> d.get('name')
'Eric'
5、has_key
检查字典中是否含有给出的键 (3.0中没有这个函数了)
>>> d = {}
>>> d.has_key('name')
False
>>> d['name'] = 'Eric'
>>> d.has_key('name')
True
6、items 和 iteritems
items 方法将所有的字典项以列表方式返回
>>> 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 0xb73212fc> # 对象
>>> list(it)
[('url', 'http://www.python.org'), ('spam', 0), ('title', 'python web site')]
7、keys 和 iterkeys
keys方法将字典中的键以列表形式返回,而iterkeys则返回针对键的迭代器
8、pop 和 popitem
pop方法用来获得对应也给定键的值
>>> d = {'x':'1','y':'2'}
>>> d.pop('x')
'1'
>>> d
{'y': '2'}
popitem方法,类似与pop但不要带键 (注意字典没有“最后的元素”或者顺序的概念)
>>> d = {'x':'1','y':'2','z':'3'}
>>> d.popitem()
('y', '2')
>>> d
{'x': '1', 'z': '3'}
9、setdefault
获得与给定键相关联的值,给不含给定键设值
>>> d = {}
>>> d.setdefault('name','N/A')
'N/A'
>>> d
{'name': 'N/A'}
>>> d['name']='hello'
>>> d.setdefault('name','N/A')
'hello'
>>> d
{'name': 'hello'}
10、update
利用一个字典更新另外一个字典
>>> d = {'title':'python web site','url':'http://www.python.org','changed':'2014-02-15'}
>>> x = {'title':'python language website'}
>>> d.update(x)
>>> d
{'url': 'http://www.python.org', 'changed': '2014-02-15', 'title': 'python language website'}
11、values 和 itervalues
values 方法以列表的形式返回字典中的值,itervalues返回值的迭代器
>>> d = {}
>>> d[1] = 1
>>> d[2] = 2
>>> d[3] = 3
>>> d[4] = 1
>>> d.values()
[1, 2, 3, 1] # 返回键的列表不同的时,返回值的列表中可以包含重复的元素