1创建和使用字典
字典是python中唯一内建的映射类型,字典中的值没有特殊的顺序,但是都存储在一个特定的键(Key)里,键可以是数字、字符串甚至是元组。
字典可以通过下面的方式创建:
phonebook = {‘Alice’: ‘2341’, ‘Beth’: ‘9102’, ‘Cecil’: ‘3258’}
字典由多个键及其对应的值 和对组成,在上例中,名字是键,电话号码是值。每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,整个字典是由一对大括号括起来,空字典由两个大括号组成,如{}。
2. dict函数
通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典。
>>>items = [(‘name’,’Gumby’),(‘age’,42)]
>>>d= dict(items)
>>>d
{‘age’:42 , ‘name’ : ‘Gumby’}
>>>d[‘name’]
‘Gumby’
也可以通过关键字参数来创建字典
>>> d = dict(name=’Gumb’ , age=42)
>>>d
{‘age’: 42 , ‘name’: ‘Gumby’}
3.基本字典操作
len(d)返回d中项(键-值对)的数量;
d(K)返回关联到键K上的值;
d(K)=V 将值V关联到键K上;
del d[K]删除键为K的项;
K in d检查d中是否有含有键为K的项
4.字典的格式化字符串
在转换说明符中的%字符后面,可以加上(用圆括号括起来的)键,后面再跟上其他说明元素。
>>>phonebook
{‘Beth’: ‘9102’, ‘ Alice’: ‘2341’, ‘Cecil’:‘3258’}
>>>”Cecil’s phone number is%(Cecil)s.” % phonebook
“Cecil’s phone number is 3258
5.字典的方法
#encoding:utf-8
#简单数据库
people = {
'Alice':{
'Phone': '2341',
'addr': 'Foo drive 23'
},
'Beth':{
'Phone': '9102',
'addr': 'Bar street 42'
},
'Cecil':{
'Phone': '3158',
'addr': 'Baz avenue 90'
}
}
labels = {
'Phone': 'phone number',
'addr': 'address'
}
name = raw_input('Name: ')
request = raw_input('Phone number (p) or address (a)? ')
if request =='p':
key = 'Phone'
if request == 'a':
key = 'addr'
if name in people:
print "%s 's %s is %s." % (name,labels[key],people[name][key])