我正在尝试编写一个遍历元组列表的函数,并返回特定元组中具有最高第二项的条目。我提出了以下代码似乎运作良好。但是,当我使用空列表运行此函数时,我收到一个错误。我想知道如何改进我的代码以提供自定义消息,或者只是'None'
如果输入列表为空。
def max_steps(step_records):
"""DOCSTRING"""
tuplemax = max(step_records, key = lambda x:x[1])
return(tuplemax[1])
答案 0 :(得分: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])