리스트 컴프리헨션 (list comprehension)
기존의 리스트를 이용해 새 리스트를 만드는 방법
기존 리스트 생성과 동일하게 대괄호를 이용하나, 대괄호 내에 for 문, if 문 등의 코드를 넣어 리스트를 생성한다.
기본 구조 및 동작 순서
코드
전통적인 방식으로 리스트를 선언하는 것과 리스트 컴프리헨션을 사용하여 선언하는 것을 비교해보자.
# 전통적인 방법
number_1 = []
for i in range(10):
number_1.append(i)
print("number_1", number_1)
# 리스트 컴프리헨션
number_2 = [i for i in range(10)]
print("number_2", number_2)
실행 결과
실행 시 두 개의 리스트가 동일한 값으로 생성되었음을 알 수 있다.
조건문 추가
기존 리스트를 기반으로 특정 조건에 맞는 값만 필터링해 새 리스트를 만들고 싶다면 for문 뒤에 조건문을 추가하면 된다.
코드
even = [i for i in range(10) if i % 2 == 0]
print("even", even)
실행 결과
처리 순서는 아래 사진과 같다.
이중 for문 사용
for문을 중복하여 리스트를 생성하는 것도 유효하다.
코드
mul = [i * j for j in range(1, 5) for i in range(2, 4)]
print("mul", mul)
실행 결과
처리 순서는 아래와 같다.
참고 문서
https://dojang.io/mod/page/view.php?id=2285