2017-09-16 6 views
0

튜플 목록을 거쳐 특정 튜플에서 가장 높은 두 번째 항목이있는 항목을 반환하는 함수를 작성하려고합니다. 잘 작동하는 것처럼 보이는 다음 코드를 생각해 냈습니다. 그러나 빈 목록을 사용하여이 함수를 실행하면 오류가 발생합니다. 사용자 지정 메시지를 제공하기 위해 코드를 향상시킬 수있는 방법이 궁금하거나 입력 목록이 비어 있다면 'None'을 간단하게 입력 할 수 있습니다.튜플 목록이 비어있는 경우 사용자 지정 메시지를 반환하는 방법은 무엇입니까?

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

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

답변

1

튜플이 "허위"즉 비어 있는지 간단히 테스트 할 수 있습니다. 이 경우, 당신의 특별한 값 반환 : 오히려 None 또는 다른 어떤 특별한 값을 반환하는 것보다, 그러나

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

를, 사용자가 잘못되었는지 정확히 알려주는 특정 예외를 발생하는 것이 좋습니다 것 :

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])