4.1. 字典方法

1clear

清除字典中所有的项。

>>> x = {}

>>> y = x

>>> x['key'] = 'value'

>>> y                        #共享X的内容

{'key': 'value'}

>>> x.clear()          #如果用 x={ }置空,y的内容不会消失

>>> y

{}

 

2copy

返回一个具有相同键--值对的新字典(浅复制 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']}

 

3fromkeys

使用给定的键建立新的字典,每个键默认对应的值为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)'}

 

4get

访问字典项的方法(当项不存在时不会报错)

>>> d = {}

>>> print d.get('name')    # 空字典,返回一个None

None

>>> d.get('name','N/A')

'N/A'

>>> d['name'] = 'Eric'

>>> d.get('name')

'Eric'

 

5has_key

检查字典中是否含有给出的键 3.0中没有这个函数了)

>>> d = {}

>>> d.has_key('name')

False

>>> d['name'] = 'Eric'

>>> d.has_key('name')

True

 

6items 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')]

 

7keys iterkeys

keys方法将字典中的键以列表形式返回,而iterkeys则返回针对键的迭代器

 

8pop 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'}

 

9setdefault

获得与给定键相关联的值,给不含给定键设值

>>> d = {}

>>> d.setdefault('name','N/A')

'N/A'

>>> d

{'name': 'N/A'}

>>> d['name']='hello'

>>> d.setdefault('name','N/A')

'hello'

>>> d

{'name': 'hello'}

 

10update

利用一个字典更新另外一个字典

>>> 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'}

 

11values itervalues

values 方法以列表的形式返回字典中的值,itervalues返回值的迭代器

>>> d = {}

>>> d[1] = 1

>>> d[2] = 2

>>> d[3] = 3

>>> d[4] = 1

>>> d.values()

[1, 2, 3, 1]              # 返回键的列表不同的时,返回值的列表中可以包含重复的元素





posted @ 2015-06-14 09:15  51runsky  阅读(172)  评论(0编辑  收藏  举报