PHpullh
학습 라이브러리/Python/딕셔너리 — 완전 정복

PYTHON · 컬렉션

딕셔너리 — 완전 정복

Python에서 가장 많이 쓰는 자료구조. 생성, 조작, 컴프리헨션, 병합까지.

컬렉션입문dictdefaultdictgetupdateitems

핵심 설명

Python에서 가장 많이 쓰는 자료구조. 생성, 조작, 컴프리헨션, 병합까지.

Python code

# 딕셔너리 생성
d1 = {"name": "Alice", "age": 30}
d2 = dict(name="Bob", age=25)
d3 = dict.fromkeys(["a", "b", "c"], 0)  # {'a':0,'b':0,'c':0}

# 접근 & 안전한 읽기
print(d1["name"])              # Alice
print(d1.get("email", "N/A")) # N/A (KeyError 없음)

# 수정
d1["email"] = "alice@test.com"
d1.update({"age": 31, "city": "Seoul"})

# setdefault — 없으면 설정하고 반환
d1.setdefault("score", 100)

# 순회
for key in d1:          print(key)
for val in d1.values(): print(val)
for k, v in d1.items(): print(f"{k}: {v}")

# 딕셔너리 병합 (Python 3.9+)
merged = d1 | d2      # 새 딕셔너리
d1 |= {"extra": True} # 인플레이스 병합

# 딕셔너리 컴프리헨션
squares = {x: x**2 for x in range(1, 6)}
inverted = {v: k for k, v in squares.items()}

# 중첩 딕셔너리 안전 접근
from collections import defaultdict
word_count = defaultdict(int)
for word in "python is great and python is easy".split():
    word_count[word] += 1
print(dict(sorted(word_count.items(), key=lambda x: -x[1])))

학습 팁

Python 3.7+에서 딕셔너리는 삽입 순서를 보장합니다. 순서 있는 딕셔너리가 필요할 때 별도 OrderedDict는 대부분 불필요합니다.

주의할 점

존재하지 않는 키에 d["key"]로 접근하면 KeyError입니다. 불확실한 키는 항상 d.get("key", default)를 사용하세요.

자주 묻는 질문

딕셔너리 — 완전 정복란 무엇인가요?

Python에서 가장 많이 쓰는 자료구조. 생성, 조작, 컴프리헨션, 병합까지.

딕셔너리 — 완전 정복 학습 시 주의할 점은 무엇인가요?

존재하지 않는 키에 d["key"] 로 접근하면 KeyError 입니다. 불확실한 키는 항상 d.get("key", default) 를 사용하세요.