2017-09-16 37 views
0

我想写一个函数,通过元组列表并返回具有特定元组中最高第二项的条目。我已经拿出了下面的代码,似乎运作良好。但是,当我使用空列表运行此函数时,出现错误。我想知道如何改进我的代码以提供自定义消息,或者如果输入列表为空,只需输入'None'即可。如何在元组列表为空时返回自定义消息?

def max_steps(step_records): 
    """DOCSTRING""" 

    tuplemax = max(step_records, key = lambda x:x[1]) 
    return(tuplemax[1]) 

回答

1

您可以简单地测试该元组是否“虚假”,即空。如果是,回到你的特殊值:

def max_steps(step_records): 
    if not step_records: 
     return None 
    tuplemax = max(step_records, key = lambda x:x[1]) 
    return(tuplemax[1]) 

然而,而不是返回None或其他一些特殊的值,它会更好地提高特定的异常让用户知道到底出了什么问题:

def max_steps(step_records): 
    if not step_records: 
     raise ValueError('"step_records" may not be empty') 
    tuplemax = max(step_records, key = lambda x:x[1]) 
    return(tuplemax[1]) 
相关问题