Notice
Recent Posts
Recent Comments
-
[Python] 리스트 컴프리헨션 본문
반응형
파이썬 문법의 장점을 극대화시키는 문법인 리스트 컴프리헨션은 직관적으로 리스트를 생성하는 방법이다.
대괄호 []
내부에 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 문이 작동하는 순서는 왼쪽부터 차례대로 작동한다.
반응형
'Python' 카테고리의 다른 글
[파이썬] 리스트 원소 길이순으로 정렬하기 (0) | 2023.04.15 |
---|---|
[Python] print 문의 옵션 (sep, end, format, escape) (0) | 2022.05.11 |
[Python] dictionary 에서 가장 큰 value에 대한 key 값 찾기 (0) | 2022.05.09 |
[Mac] jupyter notebook 설치 (0) | 2022.05.03 |
[Django] Error: That port is already in use 해결법 (0) | 2021.11.23 |
Comments