是否可以在不创建临时变量且不使用if语句的情况下实现与以下代码相同的结果?我已经尝试了多种方法,但是我对python还是很陌生。
def get_value(dictionary, key):
temp = dictionary.get(key)
if temp = None:
return "Sorry this item doesn't exist"
else:
return temp
即我正在努力实现的目标
def get_value(dictionary, key):
return dictionary.get(key) else return "Sorry this item doesn't exist"
答案 0 :(得分:6)
在字典上调用get()
时可以指定默认值。试试这个:
def get_value(dictionary, key):
default = "Sorry this item doesn't exist"
return dictionary.get(key, default)
答案 1 :(得分:1)
返回字符串而不是None
是一种反模式,因为无法区分"Sorry this item doesn't exist"
是错误消息还是与给定键关联的实际值。引发异常。
def get_value(dictionary, key):
try:
return dictionary[key]
except KeyError:
raise Exception("Sorry, this item doesn't exist")
您可以定义自己的自定义例外来代替Exception
。还应考虑您的异常是否真的为KeyError
已经提出的dict.__getitem__
上增加了任何价值。