pythondict中的get()和setdefault()方法的使用
fromkeys()用指定的键建立新字典
dict.get(key)方法,比较友好的访问字典方法,当这个键在字典中不存在的时候默认会返回None,而不会报错。
而get()方法也可以设置特定的返回值
与 get()方法类似的方法是dict.setdefault()
dict.setdefault(key)方法不仅仅是获得给定键对应的值,当这个键不存在字典中的时候,setdefault(key)方法会把这个key和value添加到字典中,
而默认添加的value是None
有一点需要解释,使用dict.setdedault(key,value)之后的返回值,如果不存在返回的就是后边设置的值的类型
value=dict.setdedault(key,value)
例如:
dict.setdedault(key,{}),如果存在返回的就是那个值,如果不存在那么返回的就是字典类型。
update()函数可以把一个字典a添加到另一个字典b中,如果在添加的过程中,发现b中的键和a中的键重复,那么会覆盖掉a中的键-值
利用get()返回值可以设置的方法强大的功能,可以使程序变得更加合理
people ={
'Alice':{'phone':'2341','addr':'A street 111'},
'Beth':{'phone':'2019','addr':'B street 222'},
'Ceil':{'phone':'3581','addr':'C street 333'}
}
labels={'phone':'phone number','addr':'address'}
name = input('Name:')
request = input('Phone_number(p) or Address(a)?')
key = request
if request=='p':key='phone'
if request=='a':key='addr'
person = people.get(name,{})#get没有的话返回空字典,利用这个返回的空字典做文章
result=person.get(key,'not avaiable')#空字典里面啥也没有,返回not avaiable
label=labels.get(key,key)#
print("%s's %s is %s." % (name ,label,result))