字典:没有特殊的顺序,键可以是数字、字符串甚至是元组。

字典创建:用大括号括起来,每个键和它的值之间用“:”隔开,项之间用“,”隔开,空字典由两个大括号组成。

1、dict 函数

可以通过其它映射或者(键,值)这样的序列对建立字典

 >>> items = [('name','wisp'),('age',24)]
>>> items
[('name', 'wisp'), ('age', 24)]
>>> d = dict(items)
>>> d
{'age': 24, 'name': 'wisp'}
>>> d['name']
'wisp'
>>> d = dict(name='wisp',age=24)
>>> d
{'age': 24, 'name': 'wisp'}

2、字典的方法:

clear 方法:清除字典中所有的项,无返回值

 >>> d = {}
>>> d['name'] = 'wisp'
>>> d
{'name': 'wisp'}
>>> d.clear()
>>> d
{}

copy 方法:返回一个具有相同键-值对的新字典

 >>> d['name'] = 'wisp'
>>> b = d.copy()
>>> b
{'name': 'wisp'}
>>> d
{'name': 'wisp'}

>>> d.clear()
>>> d
{}
>>> b
{'name': 'wisp'}

fromkeys 方法:使用给定的键建立新的字典,每个键默认对应的值为None

 >>> {}.fromkeys(['a','b'])
{'a': None, 'b': None}

>>> dict.fromkeys(['a','b'])
{'a': None, 'b': None}
>>> dict.fromkeys(['a','b'],'wisp')
{'a': 'wisp', 'b': 'wisp'}

get 方法:更宽松的访问字典的方法

 >>> a={}
>>> print a['a']

Traceback (most recent call last):
  File "<pyshell#25>", line 1, in <module>
    print a['a']
KeyError: 'a'
>>> print a.get('a')
None

has_key 方法:检查字典中是否含有给出的键,作用和in一样

 >>> a={'a':'wisp','b':'lhp'}
>>> a.has_key('a')
True
>>> a.has_key('c')
False
>>> 'a' in a
True
>>> 'c' in a
False

items 和 iteritems 方法:将字典转换成列表,返回新列表,不会修改原字典

 >>> a
{'a': 'wisp', 'b': 'lhp'}
>>> b = a.items()
>>> b
[('a', 'wisp'), ('b', 'lhp')]
>>> a
{'a': 'wisp', 'b': 'lhp'}

keys 和 iterkeys 方法:将字典中的键以列表形式返回

 >>> a
{'a': 'wisp', 'b': 'lhp'}
>>> b = a.keys()
>>> a
{'a': 'wisp', 'b': 'lhp'}
>>> b
['a', 'b']

pop 方法:获取给定键的值,并从字典中移除

 >>> a
{'a': 'wisp', 'b': 'lhp'}
>>> a.pop('a')
'wisp'
>>> a
{'b': 'lhp'}

popitem 方法:弹出一个随机项,并从字典中移除

 >>> a
{'a': 'wisp', 'b': 'lhp'}
>>> a.popitem()
('a', 'wisp')
>>> a
{'b': 'lhp'}

setdefault 方法:获取给定键对应的值,若不存在则添加

 >>> a
{'b': 'lhp'}
>>> a.setdefault('b')
'lhp'
>>> a.setdefault('a')
>>> a
{'a': None, 'b': 'lhp'}

update 方法:利用一个字典更新另外一个字典

 >>> a
{'a': None, 'b': 'lhp'}
>>> b = {'c':'111'}
>>> b
{'c': '111'}
>>> a.update(b)
>>> a
{'a': None, 'c': '111', 'b': 'lhp'}

values 和 itervalues 方法:和keys差不多,values是把值返回成列表