<aside>
💬 lv0
, 요구사항 구현
주어진 리스트 내에 홀수를 찾아 합을 반환하는 solution 함수를 완성해주세요.
입력 | 출력 |
---|---|
[1, 2, 3, 4, 5] | 9 |
[3, 5, 7, 1] | 16 |
[1, 2, 3, 4, 5] 중에서 홀수는 [1, 3, 5]입니다. 이 숫자를 모두 더하면 9가 됩니다.
</aside>
def solution(data): **#1 함수정의**
return sum(filter(lambda x: x% 2, data)) **#2 조건에 맞는 요소 필터링**
함수 정의
코드의 첫 부분에서 solution
이라는 함수를 정의합니다. 이 함수는 하나의 인자 data
를 받습니다. data
는 홀수 값을 찾을 대상이 되는 리스트입니다.
조건에 맞는 요소 필터링
filter
함수는 첫 번째 인자로 전달된 함수(여기서는 람다 함수)의 결과가 참(True)인 경우에만 두 번째 인자로 전달된 iterable(여기서는 리스트 data
)의 요소를 반환합니다.lambda x: x % 2
는 주어진 값 x
가 홀수인지를 검사합니다. 만약 x % 2
가 0이 아니라면(즉, 홀수일 경우), 해당 값은 유지됩니다.filter
함수의 결과는 홀수 값들로 이루어진 iterable이며, 이를 sum
함수를 사용하여 합산합니다.lambda 함수
기본 형태: lambda 매개변수: 표현식
개념: lambda함수는 익명 함수로, 함수를 한 줄로 간단하게 작성할 수 있습니다.
# 람다 함수 정의
double_lambda = lambda x: x * 2
# 함수 사용
result_lambda = double_lambda(3)
print(result_lambda) # 출력: 6
def solution(data): **#1 함수정의**
return sum([i for i in data if i % 2 != 0]) **#2 리스트 컴프리헨션 사용하여 필터링**
함수 정의
코드의 첫 부분에서 solution
이라는 함수를 정의합니다. 이 함수는 하나의 인자 data
를 받습니다. data
는 홀수 값을 찾을 리스트 입니다.
리스트 컴프리헨션을 사용하여 홀수 값 필터링
이 부분은 리스트 컴프리헨션을 사용하여 주어진 리스트 data
에서 홀수 값을 필터링하는 부분입니다. 여기서 i
는 data
리스트의 각 요소를 의미합니다. if i % 2 != 0
조건은 해당 요소가 홀수 인지를 검사합니다. 만약 홀수라면 리스트에 포함됩니다.
홀수 값들의 합 계산
위에서 구한 홀수 값들의 리스트를 sum
함수를 사용하여 모두 더합니다. 이를 통해 홀수 값들의 총 합을 얻을 수 있습니다.
결과 반환
최종적으로 계산된 합계값이 함수의 반환값으로 지정됩니다.
리스트 컴프리헨션
기본 형태: [표현식 for 항목 in data if 조건문]
개념: 리스트 컴프리헨션은 직관적으로 리스트를 생성하는 방법입니다. 대괄호로 내부에 for문과 if 문을 사용하여 조건에 만족하는 것만 생성합니다.
# 리스트 컴프리헨션 정의
numbers = [i for i in range(10) if i % 2 == 0]
# 리스트 컴프리헨션 사용
print(numbers) # 출력: [0, 2, 4, 6, 8]