**리스트 컴프리헨션(List Comprehension)**은 아주 간단하게 말해 **"for 반복문을 한 줄로 압축해서 새로운 리스트를 만드는 방법"**입니다. 파이썬의 매우 강력하고 인기 있는 기능 중 하나입니다.
념을 확실히 잡기 위해, 일반적인 for 반복문과 리스트 컴프리헨션을 나란히 비교해 보겠습니다.
목표: 두 리스트 a와 b의 각 요소를 더해서 새로운 리스트 result_data를 만든다.
for 반복문 방식우리가 흔히 사용하는 방식입니다. 3단계로 이루어집니다.
# 1단계: 결과를 담을 빈 리스트를 먼저 만든다.
result_data = []
# 2단계: for 반복문으로 a와 b의 길이만큼 반복한다.
for i in range(min_len):
# 3단계: 각 요소를 더한 결과를 빈 리스트에 하나씩 추가(append)한다.
result_data.append(a[i] + b[i])
print(result_data)
위의 1, 2, 3단계를 단 한 줄로 합친 것입니다.
result_data = [a[i] + b[i] for i in range(min_len)]
print(result_data)
두 코드는 완벽하게 동일한 결과를 만들어냅니다. 리스트 컴프리헨션이 훨씬 간결하죠?
문법을 세 부분으로 나눠보면 더 이해하기 쉽습니다.
result_data = [ ① 최종 결과값 for ② 반복할 변수 in ③ 반복할 범위 ]
a[i] + b[i]): 반복문 안에서 append 하려고 했던 바로 그 값입니다. 리스트에 담길 최종 요소의 형태를 결정합니다.