파이썬 리스트 컴프리헨션 사용 방법 정리

2022. 2. 4. 11:43·Python

파이썬에서 리스트 컴프리헨션을 사용하면 간단하게 리스트를 생성할 수 있습니다.

  • 리스트 컴프리헨션은 사용하면 보다 빠르고 간결한 코드로 리스트를 생성할 수 있습니다.
  • 리스트 컴프리헨션으로 새로운 리스트를 만들거나 기존의 리스트를 활용(필터링, 연산 등)할 수 있습니다.
  • 그러나 리스트 컴프리헨션이 지나치게 길어질 경우 가독성이 떨어집니다.

리스트 컴프리헨션 사용 방법

리스트 컴프리헨션의 기본 문법은 다음과 같습니다.

[expression for item in list]

짝수들을 담은 리스트를 리스트 컴프리헨션으로 만드는 방법은 다음과 같습니다.

even_numbers = [i * 2 for i in range(1, 10)]

print(even_numbers)
# [2, 4, 6, 8, 10, 12, 14, 16, 18]

이처럼 리스트 컴프리헨션을 사용하면, 단 한 줄에서 리스트 선언과 동시에 생성을 마칠 수 있습니다.

 

보통의 방법으로 동일한 리스트를 만들려면, 다음과 같이 몇 줄의 코드를 작성해야 했을 것입니다.

even_numbers = []

for i in range(1,10):
    even_numbers.append(i * 2)

print(even_numbers)
# [2, 4, 6, 8, 10, 12, 14, 16, 18]

이처럼 리스트 컴프리헨션은 한 줄의 코드로 간단히 리스트를 생성하고 값을 할당하는 데 사용할 수 있습니다.

리스트 컴프리헨션의 활용

리스트 컴프리헨션에서는 for 반복문 뿐만 아니라 if 조건문도 사용할 수 있습니다. 앞의 코드를 재사용하여, 이번에는 4의 배수만 리스트에 담아보도록 하겠습니다.

multiple_of_four = [i * 2 for i in range(1, 10) if i * 2 % 4 == 0]

print(multiple_of_four)
# [4, 8, 12, 16]

이는 다음과 같이 기존의 리스트를 필터링하는 방식으로도 활용할 수 있습니다.

even_numbers = [i * 2 for i in range(1, 10)]

multiple_of_four = [i for i in even_numbers if i % 4 == 0]

print(multiple_of_four)
# [4, 8, 12, 16]

if 문을 한 번 더 사용할 수도 있습니다. 4의 배수이며 동시에 8의 배수인 숫자들만을 추가해보겠습니다.

multiple_of_four_eight = [i * 2 for i in range(1, 10) if i * 2 % 4 == 0 if i * 2 % 8 == 0]

print(multiple_of_four_eight)
# [8, 16]

여기서 파이썬의 기본 문법과의 차이점은 and를 사용하지 않고, if 문을 차례로 나열한다는 점입니다. 리스트 컴프리헨션에서는 and를 직접적으로 사용할 수 없으며, or 에 해당하는 조건문도 사용할 수 없습니다. 또한 조건문이 늘어날 경우, 한 줄에서 모든 코드가 작성되기는 하지만 가독성은 많이 떨어지게 됩니다.

 

리스트 컴프리헨션에서 if문과 else를 사용하여 기존의 배열을 순회하고 새로운 결과를 담은 리스트를 생성할 수도 있습니다. 이 때는 조건문을 for 구문 앞에서 먼저 선언해줘야 문법 오류가 발생하지 않습니다.

numbers = [i for i in range(1, 10)]

result = ["Even" if i % 2 == 0 else "Odd" for i in numbers]

print(result)
# ['Odd', 'Even', 'Odd', 'Even', 'Odd', 'Even', 'Odd', 'Even', 'Odd']

 

참고: Python List Comprehension

반응형

'Python' 카테고리의 다른 글

파이썬 정규 표현식 치트 시트  (0) 2022.03.05
파이썬 문자열 포매팅 방법  (0) 2022.01.30
파이썬 클래스와 self 설명  (0) 2022.01.21
파이썬 패키지 정리  (0) 2022.01.12
파이썬 모듈 사용 방법 정리  (0) 2022.01.12
'Python' 카테고리의 다른 글
  • 파이썬 정규 표현식 치트 시트
  • 파이썬 문자열 포매팅 방법
  • 파이썬 클래스와 self 설명
  • 파이썬 패키지 정리
휘 Hwi
휘 Hwi
개발자 성장 로그
  • 휘 Hwi
    개발자 로그: 변화를 위한 공간
    휘 Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기 (61)
      • 101 (1)
      • Web | Internet (4)
      • HTML | CSS (4)
      • Python (9)
      • Django (20)
      • Javascript (0)
      • Node.js (0)
      • React (0)
      • React Native (0)
      • Database (1)
      • Git (1)
      • Terminal | Vim (1)
      • Auth | Security (4)
      • AWS (0)
      • Docker (0)
      • Kubernetest (1)
      • Deployment (1)
      • Project (2)
      • TIL (12)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JWT
    html
    정규 표현식
    요소 절대 크기
    css
    HTTP
    장고
    HTTP GET 요청
    JWT 디코딩
    요소 상대 크기
    JWT 인코딩
    탭내빙
    깃 에러 해결
    장고 URL
    함수
    파라미터
    요소 크기 설정
    HTTP POST 요청
    장고 프로젝트
    깃 퍼블릭 키 등록
    배포
    깃 오류
    TIL
    깃 ssh
    target="_blank"
    깃
    장고 Views
    프로젝트 회고
    새 탭에서 열기
    파이썬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
휘 Hwi
파이썬 리스트 컴프리헨션 사용 방법 정리
상단으로

티스토리툴바