십대를 위한 코딩/십대를 위한 파이썬

파이썬 리스트 내포에서 if 조건문 쓰는 법

forSilver 2025. 5. 13. 07:06
반응형

파이썬 리스트 내포에서 if 조건문 쓰는 법
― 깔끔한 필터링의 기술

리스트 내포(List Comprehension)는 파이썬의 매력적인 문법 중 하나입니다.
그 자체로도 간결하지만, 여기에 if 조건문이 더해지면 매우 강력한 필터링 도구로 변신합니다.

이번 글에서는 리스트 내포에서 if 조건문을 사용하는 기본 구조와 다양한 예제를 소개합니다.


1. 기본 구조

[표현식 for 변수 in 반복가능한객체 if 조건식]

2. 예제 1: 짝수만 뽑기

nums = [1, 2, 3, 4, 5, 6]
even_nums = [n for n in nums if n % 2 == 0]

출력: [2, 4, 6]


3. 예제 2: 문자열 길이 조건

words = ['a', 'abc', 'go', 'python']
long_words = [w for w in words if len(w) >= 3]

출력: ['abc', 'python']

upper_words = [w.upper() for w in words if len(w) >= 3]


4. 예제 3: 중첩 반복 + 조건

pairs = [(x, y) for x in 'abc' for y in [1,2,3,4] if y % 2 == 0]

출력: [('a', 2), ('a', 4), ('b', 2), ('b', 4), ('c', 2), ('c', 4)]


5. 예제 4: if-else 표현 사용

['짝수' if n % 2 == 0 else '홀수' for n in range(1, 6)]

출력: ['홀수', '짝수', '홀수', '짝수', '홀수']


6. 예제 5: set + 필터링

words = ['apple', 'banana', 'apple', 'cherry']
unique = list({w for w in words if 'a' in w})

출력: ['banana', 'apple']


✅ 마무리 요약

형태 기능
[x for x in A if 조건] 필터링
[A if 조건 else B for x in A] 조건 분기
[(x, y) for x in A for y in B if 조건] 중첩 반복 + 필터링

📌 다음 글 예고

다음 글에서는 리스트 내포와 함께 딕셔너리 내포(dictionary comprehension), 집합 내포(set comprehension)도 함께 소개하겠습니다.