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]