기본 패턴
python
names = ["mina", "jin", "ara"]
name_lengths = {name: len(name) for name in names}
first_letters = {name[0] for name in names}설명
- comprehension은 리스트뿐 아니라 딕셔너리와 집합에도 적용할 수 있습니다.
- 딕셔너리 comprehension은
key: value형태를 한 번에 만들 때 유용합니다. - 집합 comprehension은 중복 없는 결과를 빠르게 만들 때 적합합니다.
- 컬렉션 생성 규칙이 한 줄에 자연스럽게 담길 때 읽기와 수정이 모두 쉬워집니다.
짧은 예제
python
scores = {"mina": 90, "jin": 75, "ara": 88}
passed = {name: score for name, score in scores.items() if score >= 80}
grade_letters = {score // 10 for score in scores.values()}빠른 정리
| 표현 | 의미 |
|---|---|
{k: v for ...} | 딕셔너리 comprehension |
{x for ...} | 집합 comprehension |
if condition | 조건 필터 |
| 중복 제거 | 집합 comprehension의 장점 |
공식 참고: Data Structures
주의할 점
comprehension은 간결하지만, 식이 너무 복잡해지면 오히려 읽기 어렵습니다. 중첩이 깊거나
조건이 길어지면 일반 for문으로 푸는 편이 더 명확할 수 있습니다.