关于在python中使用字典get函数的一个问题。我了解,如果键不存在,get函数可以为dict提供默认值。如果在程序执行过程中我们知道密钥必须存在,该怎么办。像下面的代码。我们应该仍然使用get函数还是只使用 dict [key] 来获取价值。这是否意味着get函数可以替换 dict [key]
value = 'default'
dict_get = dict(key='value')
def test_get(dict_get):
return dict_get.get('key', 'default_value')
test_get.get('key')
test_get['key']
答案 0 :(得分:3)
如果键必须存在,则应使用yourdict[key]
,即__getitem__
方法。
如果由于某种原因该密钥不存在,则您想要使程序崩溃并KeyError
,因为显然您的程序存在问题,需要修复。
如果键应该存在,但可能不是由于程序逻辑错误引起的其他原因,则可以采取更具防御性的方法。例如,如果要求用户输入有效的密钥但未能输入,则可以使用dict.get
退回到默认值,或再次询问用户。
答案 1 :(得分:0)
dict.get
将返回None
。在某些应用程序中,您只想在那里引发一个异常,这就是dict[key]
的作用。例如:
scores = {"Larry": 5}
bob_score = scores.get("Bob") # None
if bob_score:
print("You're doing great Bob!")
else:
print("Too bad Bob, you're out.")
我们的代码假定键Bob
在字典中,并映射为整数。即使Bob不在字典中,因为None
是一个伪造的值,即使该结论是基于错误,我们仍然可以从此代码中获得有意义的答案。在这里提出一个例外会更好。