2017-12-09 1 views
-5

내가 정수의 목록에서 가장 작은 홀수 번호를 찾을 수있는 방법, 문제의 문장은 I가 을 사용할 수 없다는 말한다면?기능 프로그래밍 : 목록에서 가장 작은 홀수 번호를 찾을 수는

+0

기능 프로그래밍이 무엇인지 이해합니까? for 문이나 if 문을 사용하지 못하게하는 이유는 무엇입니까? – Sebastian

+0

odds = [i lints의 경우 i (i % 2) == 1]; min (확률) – Gary02127

+0

@ Gary02127 -'if'를 사용했습니다. –

답변

1

당신은 filtermin를 사용할 수 있습니다

s = [4, 2, 3, 4, 7, 1] 
smallest_odd = min(filter(lambda x:x%2 != 0, s)) 

출력 :

1 
1

왜 사람이 for 또는 if을 사용하는 것이 좋습니다?

min(numbers, key=lambda n: (n&1==0, n)) 
+1

상당히 빠르기 때문에? 솔루션에'min (num % 2 == 0이면 num의 num 값)을 비교하면 속도가 2/3 배 향상됩니다. 타이밍 환경 외부에서 키 기능을 정의하더라도 여전히 사실입니다. – Sebastian

0

당신은 규칙을 우회하는

ints = [2,6,8,4,6 ] 

srt = sorted(ints) 

while len(srt) > 0 and not srt[0] % 2: 
    srt = srt[1:] 

s = None 
while len(srt): 
    s = srt[0] 
    srt=[] 

print(s) 

를 사용할 수 있습니다. 목록을 정렬하고 정면에서 짝수 값을 버립니다.

결과 목록은 비어 있거나 앞에 값이 있습니다.

두 번째 while은 목록에 요소가 포함되어 있고 목록이 비어있는 것으로 재설정 된 경우에만 입력되며 (false 일 경우 while은 유효하지 않습니다).

"없음"또는 가장 낮은 짝수 번호가 인쇄됩니다.

관련 문제