리스트 컴프리핸션에서 if-else 사용하기
if-else 구문이 있는 리스트 컴프리핸션 기본 형식
리스트 컴프리핸션(list comprehension)는 파이썬에서 리스트를 효율적으로 생성할 수 있는 간결한 방법입니다. 특히 if-else
문을 리스트 컴프리핸션에 넣을 때, 여러 사람들이 혼란스러워하는 경우가 많습니다. 이 글에서는 if-else
문을 어떻게 리스트 컴프리핸션에 적용하는지 자세히 알아보겠습니다.
단일 if문 사용 예시
단일 if
문만 사용할 때는 아래와 같이 작성합니다.
1
result = [x for x in range(10) if x % 2 == 0]
이 코드는 0부터 9까지의 숫자 중에서 짝수만 리스트에 포함시킵니다.
if-else 구문 사용 예시
if-else
구문을 사용하는 경우, 문법은 조금 더 복잡해집니다. 아래의 예시를 참고하세요.
1
result = [x if x % 2 == 0 else '홀수' for x in range(10)]
이 코드는 0부터 9까지의 숫자 중에서 짝수는 그대로 두고, 홀수는 ‘홀수’라는 문자열로 바꿉니다.
주의점
if-else
구문은 리스트 컴프리핸션의 뒤, 아니면 앞에 올 수 있습니다만, 그 위치에 따라 동작이 달라집니다.- 앞에 위치시키면 모든 원소에 대해
if-else
가 실행됩니다. - 뒤에 위치시키면
if
조건을 만족하는 원소에만 적용됩니다.
정리
리스트 컴프리핸션에서 if-else
문을 사용하면 코드를 훨씬 간결하게 만들 수 있습니다. 하지만, 구문의 위치에 따라 동작 방식이 달라질 수 있으므로 주의가 필요합니다. 이를 이해하고 올바르게 사용한다면, 리스트 생성 작업이 훨씬 간편해질 것입니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.