我在 Python 方面有一点经验,但我正在学习 Udacity 计算机科学类(class)以填补我所学知识的空白并补充我已经知道的知识。该类(class)介绍了一个哈希表查找函数,如果键不在哈希表中,该函数将返回 None 作为键的值。当键不存在时,Python 的字典类型会抛出一个 KeyError,所以类(class)说在获取它的值之前使用 key in mydict
。
我想知道这样做是否更好:
mydefaultval = 75
key = ..
mydict = ..
if key in mydict:
val = mydict[key]
else:
val = mydefaultval
.. 或
mydefaultval = 75
key = ..
mydict = ..
try:
val = mydict[key]
except KeyError:
val = mydefaultval
我想对于 Python 检查键是否存在,它必须在字典中找到它。如果我然后获取该键的值,它必须做两次相同的事情。我这样想是否正确,还是 Python 会做其他事情?
最佳答案
最好的办法是使用 dict.get:
val = my_dict.get(key, mydefaultval)
如果没有像这样很棒的方法,我建议使用异常。 Python 文化是不禁止异常,通常显式检查实际上无论如何都会捕获异常。
关于python - 检查字典中键是否存在比在 Python 中捕获 KeyError 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11129885/