字典是一种不同于之前的数据结构,它是一种映射,所谓的映射就是互相对应的关系,而且与序列不同的是,字典里面的值并没有顺序,而是存在一个个键(key)里面,键值可以为任何的不可变类型,这使得字典在使用上变得非常的灵活。
字典可以直接创建也可以使用dict函数创建:
>>> a={'name':'Amy','age':25}
>>> a
{'age': 25, 'name': 'Amy'}
>>> item=[('name','Amy'),('age',25)]
>>> b=dict(item)
>>> b
{'age': 25, 'name': 'Amy'}
>>> c=dict(name='Amy',age=25)
>>> c
{'age': 25, 'name': 'Amy'}
这三种创建方式可以达到相同的效果,需要注意的是,在第一二种当中,键是需要引号的,而第三种参数创建的方式是不需要在键值加引号。
基本的字典操作:
len(d):返回字典中项的数量
d[k]:返回与键k相关联的值
d[k]=v:将v关联到键k上
del d[k]:删除键为k的项
k in d:判断是否有一项键为k
字典方法:
1.clear:清除所有项,无法回值
2.copy:返回一个具有相同项的新字典(浅复制,副本改变,原字典不受影响)
3.fromkeys:给定键值建立新字典,每个键对应None
>>> {}.fromkeys(['name','age'])
{'age': None, 'name': None}
4.get:可以访问字典项(直接访问但字典项不存在时会报错,而get会得到None)
>>> a={}
>>> print a['name']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'name'
>>> print a.get('name')
None
5.has_key:检测是否有指定键,返回True或者False
6.items:以列表方式返回所有字典项,每一项都是(键,值)。无顺序
iteritems:返回迭代器对象
7.keys:字典键以列表形式返回
iterkeys:返回针对键的迭代器
8.pop:返回对应给定键的值,并将该项从字典中移除
>>> d={'x':1,'y':2}
>>> d.pop('x')
1
>>> d
{'y': 2}
9.popitem:随机弹出一项并移除(适用于一个接一个移除并处理项的情况,因为不用首先获取键列表)
10.update:一个字典更新另外一个字典