我在Python方面有一点经验,但我选择了Udacity计算机科学课程来填补我所学知识的空白,并补充我已经知道的知识。本课程研究了一个哈希表查找函数,如果键不在哈希表中,则该函数将为键的值返回None。Python的dictionary类型在键不存在时抛出KeyError,因此课程要求在获取其值之前使用key in mydict
。在
我想知道这样做是否更好:
mydefaultval = 75
key = ..
mydict = ..
if key in mydict:
val = mydict[key]
else:
val = mydefaultval
。。或者
^{pr2}$我可以想象Python要检查键是否存在,就必须在字典中找到它。如果我在那个键上抓取值,它必须做同样的事情两次。我这样想是对的,还是Python会做其他事情?在
如果每次使用特定dict时默认值都是相同的,那么另一个选项是使用
collections.defaultdict
。声明dict比dict.get()
解决方案更冗长,但使用起来更简洁:最好的办法就是利用dict.获取公司名称:
如果没有这样一个很棒的方法,我建议使用异常。Python文化是不禁止异常的,而且通常显式检查实际上会捕捉异常。在
相关问题 更多 >
编程相关推荐