본문으로 건너뛰기
Python 기초집LESSON 11

리스트·딕셔너리 컴프리헨션

난이도입문
예상 시간30분
선수지식이전 강의

11강. 리스트·딕셔너리 컴프리헨션

1. 이번 강의에서 해결할 문제

단순 변환을 위한 반복문이 길어지면 핵심 규칙이 숨습니다. 입력, 변환, 필터가 명확한 경우 컴프리헨션으로 새 컬렉션을 만듭니다.

2. 학습 목표

3. 핵심 개념

[변환 for 항목 in 반복가능 if 조건]은 새 리스트를 만듭니다. 딕셔너리는 {키: 값 for ...} 형태입니다. 중첩이 깊거나 부작용이 있으면 일반 반복문이 더 읽기 쉽습니다.

4. 단계별 코드 예시

파일 경로: C:\dev\game-log-analyzer\main.py

main.py
records = [
{"skill": "slash", "damage": 80},
{"skill": "fireball", "damage": 150},
{"skill": "slash", "damage": 120},
]

high_damages = [r["damage"] for r in records if r["damage"] >= 100]
skill_names = {r["skill"] for r in records}
max_by_skill = {
skill: max(r["damage"] for r in records if r["skill"] == skill)
for skill in skill_names
}

print("고피해:", high_damages)
print("스킬별 최대:", max_by_skill)
PowerShell · 실행
py -3.13 .\main.py

5. 코드가 동작하는 이유

각 record가 조건을 통과하면 damage만 새 리스트에 들어갑니다. 집합 컴프리헨션은 스킬 중복을 제거합니다. 딕셔너리 컴프리헨션은 각 고유 스킬에 해당하는 최대 피해를 연결합니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

리스트·딕셔너리 컴프리헨션 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“리스트·딕셔너리 컴프리헨션” 실습 결과를 해석하는 올바른 기준은 무엇인가요?
  2. 문제 2“리스트·딕셔너리 컴프리헨션”의 작업 기준으로 ‘빈 그룹에 max 호출’을 진단하거나 바로잡은 선택은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

11강. 리스트·딕셔너리 컴프리헨션 미완료 상태