잘 해결은 했지만 사용한 개념을 잊지 않기 위해 작성하는 포스트!
def solution(n):
sum = 0
for i in range(1, n+1):
if i % 2 == 0:
sum += i
return sum
이 코드를 간결하게 만들 수 있는 방법은 없을까, 고민하고 찾아보다가 리스트 컴프리헨션(List Comprehension)을 알게 됐다. 바로 적용!
def solution(n):
return sum(i for i in range(1, n+1) if i % 2 == 0)
리스트 컴프리헨션
과 sum()
을 사용해서 함수를 간결하게 만들었다.
이참에 리스트 컴프리헨션에 대해서도 알아보자.
[표현식 for 항목 in 반복가능한_데이터 if 조건식]
set
와 dictionary
컴프리헨션도 지원한다. 일반적으로 for
루프를 사용해 리스트를 초기화하는 방법은 다음과 같다.
# 1부터 5까지의 제곱 값을 리스트에 저장하는 예제
squares = []
for i in range(1, 6):
squares.append(i ** 2)
print(squares) # Output: [1, 4, 9, 16, 25]
리스트 컴프리헨션을 사용하면 같은 코드를 한 줄로 간결하게 작성할 수 있다.
# 리스트 컴프리헨션을 이용한 예제
squares = [i ** 2 for i in range(1, 6)]
print(squares) # Output: [1, 4, 9, 16, 25]