리스트 컴프리헨션 vs 제너레이터: 편의성과 효율의 대결
리스트에 1부터 10까지 데이터를 넣는다면 for 문을 사용한 기본 형태는 다음과 같습니다.
data = []
for i in range(1, 11):
data.append(i)
이 코드를 한 줄로 줄이려면 컴프리헨션(comprehension)을 사용하면 됩니다.
[i for i in range(1, 11)]
파이썬의 리스트와 비슷한 자바, C 언어 등의 배열에서는 이와 동일한 작업을 하려면 배열을 선언하고, for 문을 통해 값을 할당하는 방식으로 진행해야 합니다. 그러나 컴프리헨션을 사용하면 선언과 할당이 한 번에 이루어지기 때문에 간단하고 짧은 문장으로 모든 일을 해결할 수 있습니다. 여기서는 리스트를 주로 다루기 때문에 리스트 컴프리헨션이라고 부르지만 tuple, set, dict 같은 자료형에서도 모두 사용할 수 있습니다.
리스트 컴프리헨션은 다음처럼 사용합니다.
[(변수 표현식) for (사용할 변수) in (순회 가능한 연속적인 데이터)]