🎯 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부터 시작
- 언제 사용: 키가 있을지 없을지 모를 때
- 시간복잡도: O(1)
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) - 키 제거하고 값 반환