PHpullh
학습 라이브러리/Python/딕셔너리 컴프리헨션

PYTHON · 컬렉션

딕셔너리 컴프리헨션

딕셔너리 컴프리헨션으로 딕셔너리를 간결하게 생성하고 변환합니다.

컬렉션중급dict comprehension딕셔너리컴프리헨션

핵심 설명

딕셔너리 컴프리헨션으로 딕셔너리를 간결하게 생성하고 변환합니다.

Python code

# 기본 딕셔너리 컴프리헨션
squares = {x: x**2 for x in range(1, 6)}
print(squares)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# 키-값 뒤집기
inv = {v: k for k, v in squares.items()}
print(inv)  # {1: 1, 4: 2, 9: 3, 16: 4, 25: 5}

# 조건부 필터링
scores = {"Alice": 85, "Bob": 62, "Carol": 91, "Dave": 45}
passed = {k: v for k, v in scores.items() if v >= 70}
print(passed)  # {'Alice': 85, 'Carol': 91}

# 중첩 딕셔너리 변환
students = {
    "Alice": {"math": 90, "eng": 85},
    "Bob": {"math": 70, "eng": 92},
}
averages = {name: sum(s.values()) / len(s)
            for name, s in students.items()}
print(averages)  # {'Alice': 87.5, 'Bob': 81.0}

# zip으로 두 리스트를 딕셔너리로
keys = ["name", "age", "city"]
values = ["Alice", 30, "서울"]
info = {k: v for k, v in zip(keys, values)}
print(info)  # {'name': 'Alice', 'age': 30, 'city': '서울'}

학습 팁

두 리스트를 딕셔너리로 변환할 때 dict(zip(keys, values))가 컴프리헨션보다 간결합니다.

주의할 점

값이 중복되는 키-값 뒤집기에서는 마지막 값만 남습니다. 모든 값을 보존하려면 defaultdict(list)를 사용하세요.

자주 묻는 질문

딕셔너리 컴프리헨션란 무엇인가요?

딕셔너리 컴프리헨션으로 딕셔너리를 간결하게 생성하고 변환합니다.

딕셔너리 컴프리헨션 학습 시 주의할 점은 무엇인가요?

값이 중복되는 키-값 뒤집기에서는 마지막 값만 남습니다. 모든 값을 보존하려면 defaultdict(list) 를 사용하세요.