이번 포스팅은 파이썬에서 간결하고 실용적인 기능
리스트 컴프리헨션에 대해 알아보겠습니다.
1. 리스트 컴프리헨션(List Comprension)이란?
리스트 컴프리헨션은 리스트를 생성하는 방법 중 하나입니다.
리스트 대괄호 [ ] 안에 if문과 for문을 사용하여 조건에 만족하는 구문만 리스트로 생성할 수 있습니다.
리스트를 생성하고 for문과 if문을 사용하는 것과 리스트 컴프리헨션을 사용하는 것이 무엇이 차이가 나는지
아래 예제를 통해 알아보겠습니다.
- 리스트 컴프리헨션을 사용하지 않고 0 ~ 4까지의 정수 리스트를 생성
list=[]
for i in range(5):
list.append(i)
print(list)
- 결과
예상 할 수 있듯이 0 ~ 4 까지의 정수로 리스트를 생성했습니다.
- 리스트 컴프리헨션을 사용하여 0 ~ 4까지의 정수 리스트 생성
list = [ i for i in range(5) ]
print(list)
-결과
똑같은 결과를 내는 코드 이지만 리스트 컴프리헨션을 사용하면 1줄로 작성이 가능하고
조금 더 직관적으로 확인할 수 있습니다.
2. 리스트 컴프리헨션 응용
- 리스트 컴프리헨션을 사용하면 대괄호 안에 수식이나 함수를 적용하여 사용 할 수 있습니다.
> 함수 적용
def func(x):
x = int(x) + 10
return x
list = [func(i) for i in range(5)]
print(list)
- 결과
> 수식 적용
list = [i+10 for i in range(5)]
print(list)
- 결과
- 리스트 컴프리헨션 대괄호 안에 조건문을 적용하여 사용할 수 있습니다.
사실 리스트 컴프리헨션을 사용하는 이유는 이 조건문들을 사용하는게 편리해서 사용하는 것 입니다.
> if문 사용
list = [ i for i in range(10) if i%2==0 ]
print(list)
i for i in range(10) 로 i가 0~9 까지 반복합니다.
이때 if % 2 == 0 의 조건을 적용하여 i가 2로 나누어지는 나머지가 0 일때 라는 조건을 걸어
출력이 나오는 것을 볼 수 있습니다.
- 출력
> if문 여러개 사용
list = [ i for i in range(10) if i%2==0 if i%4==0]
print(list)
if문을 오른쪽에 여러개 사용하여 조건문을 추가 할 수 있습니다.
- 출력
오른쪽의 if문 두개는 and 조건으로 묶여 동시에 만족하는 것 만 출력하는 것을 볼 수 있습니다.
즉, 2로 나누어지고 동시에 4로도 나누어 지는 숫자만 출력되었습니다.
> if문을 왼쪽에 사용
list = [i if i%2==0 else '홀수' for i in range(10)]
print(list)
if문을 왼쪽에 사용할 시 반드시 else 문을 같이 사용해야 합니다!
- 출력
if문을 사용하여 짝수의 i 를 출력하게 하였고 나머지는 홀수라는 단어를 출력하게 하였습니다.
이상 파이썬의 리스트 컴프리헨션에 대해 알아봤습니다.
리스트 컴프리헨션은 직관적이고 코드 작성 줄 수를 줄여준다는 장점도 있고
실제로 속도도 더 빠르게 되는 것을 볼 수 있었습니다.
다음 포스팅으로 찾아오겠습니다 :)
'Python > Python 정리' 카테고리의 다른 글
[Python] 자료형을 확인하는 isinstance() (0) | 2021.06.27 |
---|---|
[Python] 패킹(packing)과 언패킹(unpacking) (2) | 2021.06.26 |
[Python] @ (Decorator) 정리 (2) | 2021.06.14 |
[Python] 가정 설정문 assert 정리 (0) | 2021.06.07 |
[Python] __call__ 함수 정리 (2) | 2021.06.06 |