python学习笔记:字典的使用示例详解
经典字典使用函数
dict:通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典。当然dict成为函数不是十分确切,它本质是一种类型。如同list。
items=[('name','zhang'),('age',42)]
d=dict(items)
d['name']
len(d):返回项的数量
d[k]:返回键k上面的值。
d[k]=v:将k对应的值设置为k。
deld[k]:删除字典中的这一项。
kind:检查d中是否含有键为k的项。注:只能查找键,不能查找值。
简单的电话本示例:
#Asimpledatabase
#Adictionarywithpersonnamesaskeys.Eachpersonisrepresentedas
#anotherdictionarywiththekeys'phone'and'addr'referringtotheirphone
#numberandaddress,respectively.
people={
'Alice':{
'phone':'2341',
'addr':'Foodrive23'
},
'Beth':{
'phone':'9102',
'addr':'Barstreet42'
},
'Cecil':{
'phone':'3158',
'addr':'Bazavenue90'
}
}
#Descriptivelabelsforthephonenumberandaddress.Thesewillbeused
#whenprintingtheoutput.
labels={
'phone':'phonenumber',
'addr':'address'
}
name=raw_input('Name:')
#Arewelookingforaphonenumberoranaddress?
request=raw_input('Phonenumber(p)oraddress(a)?')
#Usethecorrectkey:
ifrequest=='p':key='phone'
ifrequest=='a':key='addr'
#Onlytrytoprintinformationifthenameisavalidkeyin
#ourdictionary:
ifnameinpeople:print"%s's%sis%s."%\
(name,labels[key],people[name][key])
字典方法
clear:清除字典中的所有项。
x.clear()
copy:浅复制字典。
y=x.copy()
deepcopy:同样是复制,来看看和copy的区别。
fromcopyimportdeepcopy
d={}
d['names']=['as','sa']
c=d.copy()
dc=deepcopy(d)
d['names'].append('ad')
fromkeys:给指定的键建立新的字典,每个键默认对应的值为none.
{}.fromkeys(['name','age'])
get:更为宽松的访问字典项的方法。
d.get('name')
#Asimpledatabaseusingget()
#Insertdatabase(people)fromListing4-1here.
labels={
'phone':'phonenumber',
'addr':'address'
}
name=raw_input('Name:')
#Arewelookingforaphonenumberoranaddress?
request=raw_input('Phonenumber(p)oraddress(a)?')
#Usethecorrectkey:
key=request#Incasetherequestisneither'p'nor'a'
ifrequest=='p':key='phone'
ifrequest=='a':key='addr'
#Usegettoprovidedefaultvalues:
person=people.get(name,{})
label=labels.get(key,key)
result=person.get(key,'notavailable')
print"%s's%sis%s."%(name,label,result)
has_key:检查字典中是否含有给定的键。d.haos_key()。值返回True,False。
items:将所有字典项目一列表方式返回。
iteritems:方法大致相同,但是会返回一个迭代器而不是列表。
keys:将字典中的键以列表的方式返回。(注意区分和items的区别)
iterkeys:返回针对键的迭代器。
pop:获得对应给定键的值,然后将键-值对删除。
popitem:弹出一个随机的项,
setdefault:既能获得与给定键相关的值,又能在字典中不含有该键的情况下设定相应的键值。
update:用一个字典更新另一个字典。
d={'1':'d','2':'s','3':'a'}
x={'1','jk'}
d.update(x)
values:以列表的形式返回字典中的值。
itervalues:返回值得迭代器。