[Python] 리스트 컴프리헨션(List Comprehension)

2021. 6. 17. 17:09· Python/Python 정리
목차
  1. 1. 리스트 컴프리헨션(List Comprension)이란?
  2. 2. 리스트 컴프리헨션 응용
728x90
반응형

 

이번 포스팅은 파이썬에서 간결하고 실용적인 기능 

리스트 컴프리헨션에 대해 알아보겠습니다. 


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 를 출력하게 하였고 나머지는 홀수라는 단어를 출력하게 하였습니다.

 

 

이상 파이썬의 리스트 컴프리헨션에 대해 알아봤습니다.

리스트 컴프리헨션은 직관적이고 코드 작성 줄 수를 줄여준다는 장점도 있고

실제로 속도도 더 빠르게 되는 것을 볼 수 있었습니다.

 

다음 포스팅으로 찾아오겠습니다 :) 

 

728x90
반응형
저작자표시 (새창열림)

'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
  1. 1. 리스트 컴프리헨션(List Comprension)이란?
  2. 2. 리스트 컴프리헨션 응용
'Python/Python 정리' 카테고리의 다른 글
  • [Python] 자료형을 확인하는 isinstance()
  • [Python] 패킹(packing)과 언패킹(unpacking)
  • [Python] @ (Decorator) 정리
  • [Python] 가정 설정문 assert 정리
우준세
우준세
준세 단칸방우준세 님의 블로그입니다.
반응형
우준세
준세 단칸방
우준세
전체
오늘
어제
  • 분류 전체보기 (180)
    • Python (75)
      • Python 정리 (30)
      • 백준 알고리즘 (45)
    • C# (48)
      • Winform (12)
    • C & C++ (5)
      • C++ (1)
    • 영상처리 (17)
    • JAVA (11)
      • 코딩자율학습-스프링부트 (11)
    • AI (11)
      • DL (4)
      • Pytorch (5)
      • GAN (2)
    • Computer Science (3)
      • Algorithm (3)
    • Project (7)
    • 책 리뷰 (1)

블로그 메뉴

  • 글쓰기
  • 관리자

인기 글

태그

  • C# Monitor
  • opencv
  • 스프링부트
  • opencv 객체 추적
  • C# Evnet
  • C# 비동기
  • c#
  • pytorch
  • 알고리즘
  • C# 이벤트 프로그래밍
  • 백준 파이썬
  • C# event
  • 파이썬
  • 백준
  • 이벤트 기반 프로그래밍
  • c# 정규표현식
  • C# deadlock
  • Winform DataGridView
  • python opencv
  • c# 비동기프로그래밍
  • c언어
  • pytorch tutorial
  • C# dataGridView
  • Python
  • pytorch tensor
  • 자바
  • C# Task 메서드
  • C# ContinueWith
  • C# 비동기 프로그래밍
  • 코딩자율학습

최근 댓글

최근 글

우준세
[Python] 리스트 컴프리헨션(List Comprehension)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.