Notice
Recent Posts
Recent Comments
05-10 06:07
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

-

[Python] 리스트 컴프리헨션 본문

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 문이 작동하는 순서는 왼쪽부터 차례대로 작동한다.

 

 

반응형
Comments