2016-08-17 1 views
0

목록 x에서 정수 y보다 큰 정수의 합을 반환하는 함수가 있습니다. 함수 내 질문다음 기능으로 목록을 이해할 수 있습니까?

def sum_greater(x, y): 
    result = 0 
    for i in range(len(x)): 
     if x[i] > y: 
      result = result + x[i] 
    return result 

0을 반환 Y보다 숫자 없음 더있는 경우 : 그것은 가능하다 (그리고 어떻게보다 경우)이 함수에서 지능형리스트를 만들기 위해?

+0

. 모든 숫자가 y보다 작 으면 0을 반환해야합니다. 그러나 쉘에서 모듈을 실행할 때 (sum_greater ([1,2,3,4,5,6], 4)) 11을 반환 했으므로 올바르게 작동한다고 생각했습니다. –

+0

11이 아닌 0을 반환합니다. 우리에게 잘못된 코드가 있습니까? – zondo

+0

맞습니다. 잘못된 코드를 복사했습니다. –

답변

3

당신은 발전기 표정으로 sum() 기능을 사용할 수 : 0부터

sum(i for i in x if i > y) 
3

는 특별한 취급이 필요하지 않습니다 아무것도의 합계의 자연적인 결과이다. 당신은 보낼 수 있습니다에 generator expression 내장 sum : 나는 그것에 대해 생각 돌아가신`t

def sum_greater(x, y): 
    return sum(i for i in x if i>y) 
관련 문제