一、定义
Python中映射是通过名字来应用值的一种数据结构。而字典是python中唯一內建的映射类型。字典由多个键及与其对应的值构成的键--值对(也称为项)组成。键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键--值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。键值在字典中没有特殊的顺序,是的,字典是无序的,但都是存在特定的键key下,而键key可以是任意的不可变类型,比如浮点型、字符串或元组等,键是唯一的,值可不唯一。空字典不包含任何项,由两个花括号表示:{}。
二、字典的基本操作
1、序列的很多操作在字典上同样适用。set d=dict,k=key。
len(d),返回d中项的数量。
d[k],返回关联到键k上的值。
d[k] = v,将v关联到键k上。
del d[k],删除键为k的项。
k in d,检查d中是否包含有键为k的项。在字典中查键的成员资格比在列表中检查值的成员资格效率更高。
2、dict()
可以用dict()通过其他映射或(键--值)对的序列建立字典。
>>> items = [('name','xiaoming'),('score',89)]
>>> d = dict(items)
>>> d
{'score': 89, 'name': 'xiaoming'}
也可以用dict()通过关键字参数来创建字典。
>>> d = {}
>>> d
{}
>>> d = dict(name = 'xiaoming',score = 89)
>>> d
{'score': 89, 'name': 'xiaoming'}
3、字典的格式化字符串
在每个转换说明符中的%字符后面加上键,该键用()括起来,后面再跟上其它说明元素,此时转换说明符还是像以前一样的工作。前提是,所给出的键,在字典中都要能找得到。
>>> phonebook = {'xiaoming':'1230','xiaohong':'0123','liqin':'0234'}
>>> print "liqin's phone number is %(liqin)s." % phonebook
liqin's phone number is 0234.
>>>
还可以利用模板批量转换任意数量的字符串。
>>> bookstore = {
'COOKING':{
'language':'cn',
'author':'xiaoming',
'year':2017,
'price':20
},
'CODING':{
'language':'cn',
'author':'xiaohong',
'year':2016,
'price':40
},
'PYTHON':{
'language':'cn',
'author':'liqin',
'year':2015,
'price':60
}
}
>>> template = '''<XML bookstore>
<book category XX>
<title %(language)s</title>
<author> %(author)s</author>
<year> %(year)s</year>
<price> %(price)s</price>
</book>
<XML bookstore>'''
>>>