Python
[Python] 리스트 컴프리헨션
choiht
2022. 5. 10. 14:50
반응형
파이썬 문법의 장점을 극대화시키는 문법인 리스트 컴프리헨션은 직관적으로 리스트를 생성하는 방법이다.
대괄호 []
내부에 for문과 if문을 사용하여 조건에 만족하는 것만 리스트로 생성할 수 있다.
리스트 컴프리헨션을 사용하는 가장 큰 이유는 직관적이고, 코드를 한줄로 만들 수 있으며 속도면에서도 우수하기 때문이다.
리스트 생성
기존에 알던 문법으로 1부터 10까지의 정수를 리스트로 만드는 방법은 다음과 같다.
numbers = []
for n in range(1, 10+1):
numbers.append(n)
이 코드를 리스트 컴프리헨션으로 표기하면 다음과 같다.
numbers = [x for x in range(10)]
동작 원리
조건 걸기
1부터 10까지 정수 중 짝수만 들어있는 리스트를 만드는 코드는 다음과 같다.
numbers = []
for n in range(1, 10+1):
if n % 2 == 0:
numbers.append(n)
이를 리스트 컴프리헨션으로 표기하면 다음과 같다.
numbers = [x for x in range(1, 10+1) if x % 2 == 0]
이 때, if
키워드는 for문
다음에 위치해야 한다.
중복 표현
컴프리헨션은 내부에서 for 문
과 if 문
을 여러번 반복해서 사용할 수 있다.
l = [(x, y) for x in ['a', 'b', 'c'] for y in ['1', '2', '3']]
print(l)
# 출력 결과
[('a', '1'), ('a', '2'), ('a', '3'),
('b', '1'), ('b', '2'), ('b', '3'),
('c', '1'), ('c', '2'), ('c', '3')]
for 문이 작동하는 순서는 왼쪽부터 차례대로 작동한다.
반응형