dict相当于Java中的map,是Python中内置映射类数据类型。通过键值存取访问。dict的结构如下:{'key':value,'key2':value2,...}
1 字典dict 的创建
>>> d={'Monday':1,'Tuesday':2,'Wednesday':3}
>>> type(d)
<type 'dict'>
注意:
字典的键必须是不可变数据类型
2 dict中值的查询
格式:变量名[键名]
>>> d['Monday']
1
3 dict中值的添加与修改
添加:格式:字典变量名[新添加的键名] = 新键对应的值
>>> d['Thursday']=5
>>> d
{'Tuesday': 2, 'Thursday': 5, 'Wednesday': 3, 'Monday': 1}
修改:格式:字典变量名[要修改值对应的键名] = 新值
>>> d['Thursday']=4
>>> d
{'Tuesday': 2, 'Thursday': 4, 'Wednesday': 3, 'Monday': 1}
字典添加和修改方法其实是相同的。新值所要对应的键名如果存在,就是修改操作,如果不存在就相当于添加操作。
4 dict的删除
字典删方法常见有三种,作用也不同
1 del方法:删除字典或者某一个键对应的值
格式:删除一个键值对为:del 空格 变量名[键名],或者 del(变量名[键名];如果为:del 变量名,则删除此字典
>>> d
{'Tuesday': 2, 'Thursday': 4, 'Wednesday': 3, 'Monday': 1}
>>> del d["Monday"]
>>> d
{'Tuesday': 2, 'Thursday': 4, 'Wednesday': 3}
>>> del(d["Tuesday"])
>>> d
{'Thursday': 4, 'Wednesday': 3}
2 python pop方法:删除键对应的值,但它会把对值的应输出后再删除
>>> d
{'Thursday': 4, 'Wednesday': 3}
>>> d.pop("Thursday")
4
>>> d
{'Wednesday': 3}
3 popitem()方法:随机返回并删除字典中的一对键和值(项)
>>> d
{'Color': 'Blue', 'age': 100, 'name': 'Sun'}
>>> d.popitem()
('Color', 'Blue')
4 clear方法:清空字典中的所有数据,变量名.clear(),变为空字典
>>> d
{'Wednesday': 3}
>>> d.clear()
>>> d
{}
5 dict中的方法
5.1 items()和iteritems()
dict.items()返回列表list的所有列表项,形如这样的二元组list:[(key,value),(key,value),...],dict.iteritems()是generator, yield 2-tuple。
>>> d={"lll":23,"g":124,"y":8}
>>> d.items()
[('y', 8), ('g', 124), ('lll', 23)]
>>> d.iteritems()
<dictionary-itemiterator object at 0x01A59120>
从结果中可以看到,items()方法是将字典中的每个项分别做为元组(tuple),添加到一个列表中,形成了一个新的列表容器。如果有需要也可以将返回的结果赋值给新变量,这个新的变量就会是一个列表数据类型。
>>> l=d.items()
>>> type(l)
<type 'list'>
>>> l
[('y', 8), ('g', 124), ('lll', 23)]
>>> p=l[1]
>>> p
('g', 124)
>>> type(p)
<type 'tuple'>
>>> p
('g', 124)
>>> it=d.iteritems()
>>> it
<dictionary-itemiterator object at 0x01A59120>
>>> type(it)
<type 'dictionary-itemiterator'>
>>> list(it)
[('y', 8), ('g', 124), ('lll', 23)]
5.2 其他方法
d.copy() 创建副本
d2.update(d1) 将d1合并到d2中
d.keys() 获取所有key
d.values()获取所有value
d.get(key,参数) 获取key所对应的值,若键不存在则返回None,用户也可以设定自己的返回参数。如 d.get("Color","Not existed!")
d.setdefault() 用法见下示例
>>> a={}
>>> a.setdefault('banana')
>>> a
{'banana': None}
>>> a.setdefault('orange',6)
6
>>> a
{'orange': 6, 'banana': None}
另外,字典可以嵌套字典,如:d = { 'fruit' :{ 'apple':2 , 'orange':3}}
6 字典的遍历
>>> #字典的遍历
>>> d={'Color': 'Blue', 'age': 100, 'name': 'Sun'}
>>> for k in d:
print "d[%s]="%k,d[k]
d[Color]= Blue
d[age]= 100
d[name]= Sun
使用items()进行遍历
>>> d.items()
[('Color', 'Blue'), ('age', 100), ('name', 'Sun')]
>>> #使用items()方法进行遍历
>>> for k,v in d.items():
print "d[%s]="%k,v
d[Color]= Blue
d[age]= 100
d[name]= Sun
使用iteritems()进行遍历
>>> print d.iteritems()
<dictionary-itemiterator object at 0x01B872D0>
>>> for k,v in d.iteritems():
print "d[%s]="%k,v
d[Color]= Blue
d[age]= 100
d[name]= Sun
>>> d.iterkeys()
<dictionary-keyiterator object at 0x01B872D0>
>>> d.itervalues()
<dictionary-valueiterator object at 0x01B87300>
>>> zip(d.iterkeys(),d.itervalues())
[('Color', 'Blue'), ('age', 100), ('name', 'Sun')]