본문 바로가기
Language/Python

Python ) List Comprehension

by nyum76 2026. 1. 16.

List Comprehension

List Comprehension 은 리스트를 간결하게 만드는 방법이다

어느 상황에 사용하는지 예시와 함께 알아보자


1부터 10까지의 제곱을 인수로 갖는 리스트를 만든다고 해보자

sqaure_list = []
for x in range(10):
    sqaure_list.append(x**2)
print(sqaure_list) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

 

x가 for 반복문을 돌면서 1부터 10까지의 제곱값을 square_listappend(추가) 한다

 

1부터 10까지의 제곱을 인수로 갖는 리스트를 만드는 또 다른 방법이 있다:

# List Comprehension
square_list = [x**2 for x in range(10)]
print(square_list) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

 

 

List Comprehension 은 괄호[] 안에 표현식을 포함하고, 그 뒤에 for 절이 오며, 그다음 0개 이상의 for 또는 if 절이 오는 구조이다

결과는 for 및 if 절의 맥락에 따라 표현식을 계산해 새로운 리스트가 생성된다

 

예를 들어, 이 List Comprehension은 두 리스트의 요소가 서로 같지 않을 경우 해당 요소를 묶는다

lst = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
print(lst) # [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

 

그리고 이는 아래 코드와 동일하다

lst = []
for x in [1, 2, 3]:
  for y in [3, 1, 4]:
    if x != y:
      lst.append((x, y))

print(lst) # [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

 

 

참고로 두 개 이상의 변수를 하나의 묶음으로 리스트에 담으려면 () 괄호 사용해야한다

그렇지 않으면 SyntaxError 가 발생한다

# 잘못된 예시
lst = [x, y for x in range(2) for y in range(2)]

 

 

List Comprehension 에 대해 살펴보았다

List Comprehension 은 for 과 if 를 사용하여 리스트에 append(추가) 하는 코드를 간결화 한 것이라고 볼 수 있다


참고

Python Docs : List Comprehension