🎯 1. 딕셔너리 기본 (Dictionary)

딕셔너리 생성

# 방법 1: 중괄호
d = {'a': 1, 'b': 2, 'c': 3}

# 방법 2: dict()
d = dict(a=1, b=2, c=3)

# 방법 3: 빈 딕셔너리
d = {}
d = dict()

# 방법 4: 리스트에서 변환 (코테 자주 씀!)
pairs = [('a', 1), ('b', 2), ('c', 3)]
d = dict(pairs)         # {'a': 1, 'b': 2, 'c': 3}

추가 / 수정

d = {'a': 1, 'b': 2}

# 추가/수정 (키가 없으면 추가, 있으면 수정)
d['c'] = 3              # {'a': 1, 'b': 2, 'c': 3}
d['a'] = 10             # {'a': 10, 'b': 2, 'c': 3}

# 여러 개 추가
d.update({'d': 4, 'e': 5})
d.update(f=6, g=7)

🎯 2. 딕셔너리 핵심 메서드 ⭐⭐⭐

get(key, default) - 안전하게 값 가져오기 ⭐⭐⭐

d = {'a': 1, 'b': 2, 'c': 3}

# 기본 접근 (위험!)
print(d['a'])           # 1
print(d['z'])           # KeyError!  ❌

# get() 사용 (안전!)
print(d.get('a'))       # 1
print(d.get('z'))       # None  (에러 안 남!)
print(d.get('z', 0))    # 0  (기본값 지정)

# 코테 활용 예시
scores = {}
scores['김철수'] = scores.get('김철수', 0) + 10  # 없으면 0부터 시작

keys() - 모든 키 가져오기

d = {'a': 1, 'b': 2, 'c': 3}

# 키만 가져오기
keys = d.keys()         # dict_keys(['a', 'b', 'c'])

# 리스트로 변환
key_list = list(d.keys())  # ['a', 'b', 'c']

# 순회
for key in d.keys():
    print(key)

# 단축 (keys() 생략 가능)
for key in d:           # 동일!
    print(key)

values() - 모든 값 가져오기

d = {'a': 1, 'b': 2, 'c': 3}

# 값만 가져오기
values = d.values()     # dict_values([1, 2, 3])

# 리스트로 변환
val_list = list(d.values())  # [1, 2, 3]

# 값들의 합
total = sum(d.values())      # 6

# 최댓값/최솟값
max_val = max(d.values())    # 3
min_val = min(d.values())    # 1

items() - 키-값 쌍 가져오기 ⭐⭐⭐

d = {'a': 1, 'b': 2, 'c': 3}

# (키, 값) 튜플로 반환
items = d.items()       # dict_items([('a', 1), ('b', 2), ('c', 3)])

# 순회 (코테에서 가장 많이 씀!)
for key, value in d.items():
    print(f"{key}: {value}")

# 리스트로 변환
item_list = list(d.items())  # [('a', 1), ('b', 2), ('c', 3)]

# 정렬 (코테 필수 패턴!)
sorted_by_key = sorted(d.items())                    # 키 기준 정렬
sorted_by_value = sorted(d.items(), key=lambda x: x[1])  # 값 기준 정렬
sorted_by_value_desc = sorted(d.items(), key=lambda x: -x[1])  # 값 내림차순

🎯 3. 기타 딕셔너리 메서드

pop(key, default) - 키 제거하고 값 반환