반응형
파이썬 리스트 내포에서 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)도 함께 소개하겠습니다.
'십대를 위한 코딩 > 십대를 위한 파이썬' 카테고리의 다른 글
파이썬 딕셔너리 내포― 한 줄로 만드는 똑똑한 데이터 매핑 (2) | 2025.05.15 |
---|---|
리스트 내포로 2차원 리스트 만들기 (1) | 2025.05.14 |
파이썬 리스트 내포 오류 쉽게 이해하기 (1) | 2025.05.12 |
사용자 정의 함수를 활용한 고급 key 정렬 (1) | 2025.05.11 |
파이썬 리스트 정렬 완전 정복 – sort(), sorted(), key 옵션까지 (1) | 2025.05.10 |