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_list에 append(추가) 한다
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
'Language > Python' 카테고리의 다른 글
| Python ) Lambda Expressions : 람다 표현식 (0) | 2026.01.18 |
|---|---|
| Python ) map, filter 함수 (0) | 2026.01.17 |
| Python ) Iterator 와 Generator (0) | 2026.01.15 |
| Python ) Reading and Writing Files : 파일 읽고 쓰는법 (0) | 2026.01.14 |
| Python ) Variable Naming (변수 명명법) (0) | 2026.01.13 |