标题:关于get()的用法
只看楼主
schweinebauc
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-9-27
结帖率:0
已结贴  问题点数:20 回复次数:1 
关于get()的用法
程序代码:
eople = {

'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)?')

key = request

if request == 'p' : key = 'phone'
if request == 'a' : key = 'addr'

person = people.get(name,{}) 
label = labels.get(key,key)    
result = person.get(key, 'not available')

print "%s's %s is %s." % (name,label,result)

#if name in people : print "%s's %s is %s." % (name,labels[key], people[name][key])


最近开始学python基础教程这本书,今天看到get()的用法有点懵,想问一下倒数第5行代码,为什么people字典中没有name键的时候要返回一个空字典,作用是什么?
搜索更多相关主题的帖子: get addr name key people 
2017-05-15 17:11
sunb3
Rank: 2
来 自:北京
等 级:论坛游民
威 望:3
帖 子:34
专家分:94
注 册:2017-4-20
得分:20 
道理很简单,如果不是空字典在处理result的时候就会报错了。
毕竟你result可是要处理字典的get的,如果换成了string肯定就没有get这个方法就会因为错误而中断,而实际程序完全没有必要因为这中小问题停止执行。
你把他当作是为了避免报错的一种方式,写法记住就好了。

除了基础……我什么都不会……
2017-05-21 10:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-477016-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.166313 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved