没有if语句,返回字符串代替None

时间:2018-08-10 14:46:57

标签: python dictionary

是否可以在不创建临时变量且不使用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"

2 个答案:

答案 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__上增加了任何价值。