Python - 리스트 컴프리헨션(List comprehension) - for, if/else 사용하여 코드 간결하게 표현하기

반응형

리스트 컴프리헨션이란?

  • 리스트를 가지고 다른 리스트를 만드는 방법
  • 주로 for와 if를 한줄로 간결하게 표현하려고 사용
    • 리스트 컴프리헨션 사용 예시 - 새로운 리스트에 기존의 값들을 +5하여 저장

for를 활용한 리스트 컴프리헨션 예시


리스트 컴프리헨션의 기본 형식

  • 리스트 안의 코드와 표현식이 내포

리스트 컴프리헨션을 이용하여 for와 if/else 사용하기

  • for 사용
# 리스트 컴프리헨션을 사용한 for
# 1부터 5까지의 수 출력
[i for i in range(1, 6)]
>>> [1, 2, 3, 4, 5]

 

  • if / else 사용
    • 단, elif(else if)는 사용 불가
# 리스트 컴프리헨션을 사용한 if & else
# a가 2면 2 출력, 아니면 0 출력
a = 0
[a if a==2 else 0]
>>> [0]

 

  • for / if 사용
# 리스트 컴프리헨션을 사용한 for & if
# 1부터 5까지의 숫자 중 짝수만 출력
[ x for x in range(1, 6) if x%2 ==0 ]
>>> [2, 4]

 

  • for / if / else
# 리스트 컴프리헨션을 사용한 for & if & else
# 1부터 5까지의 숫자 중 짝수는 그대로 출력, 홀수일 경우 홀수 표시
[ x if x%2 ==0 else "홀수" for x in range(1,6)]
>>> ['홀수', 2, '홀수', 4, '홀수']

 

  • for / for (이중 for문)
# 리스트 컴프리헨션을 사용한 이중for문
# 2단부터 9단까지 구구단 출력
[ i * j for i in range(2,10) for j in range(1,10) ]
>>> [2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27] .... 9단까지

한 눈에 확인하는 예제 요약

반응형