선언
d = {}
d = {"a": 1, "b": 2}
d = dict(a=1, b=2)
d = dict([("a", 1), ("b", 2)])
for i in range(len(genres)):
data.append({
"genre": genres[i],
"play": plays[i],
"index": i
})값 접근
d["a"]
d.get("a")
d.get("missing", 0) # default 값 반환코테에서는
.get(key, default)사용이 매우 많다. KeyError 방지.
추가 / 수정
d["c"] = 100 # 추가
d["a"] = 999 # 수정
d.update({"x": 1}) # 여러 값 업데이트
d.update(y=2, z=3) # 키워드 기반 업데이트삭제
del d["a"]
d.pop("b") # 반환값 포함
d.pop("missing", None) # 안전 pop (default 지정)
d.clear() # 전체 삭제key / value / item 반복
for k in d.keys():
pass
for v in d.values():
pass
for k, v in d.items():
passset 사용 (특정 조건으로 중복 제거)
data = [ {'id': 1, 'name': 'A'}, {'id': 2, 'name': 'B'}, {'id': 1, 'name': 'C'} ]
# id 기준 중복 제거
seen = set()
result = []
for item in data:
if item['id'] not in seen:
seen.add(item['id'])
result.append(item)
# [{'id': 1, 'name': 'A'}, {'id': 2, 'name': 'B'}]개수 세기 (Counter 활용)
collections.Counter 는 “원소 개수를 세는 데 특화된 딕셔너리”
from collections import Counter
cnt = Counter(arr)
cnt["a"] # 개수 조회
cnt.most_common(1) # 최빈값정렬 (key/value 기준 정렬)
# d.items()는 딕셔너리의 (key, value) 쌍을 튜플 형태로 반환하는 객체
sorted_items = sorted(d.items(), key=lambda x: x[1]) # value 오름차순
sorted_items = sorted(d.items(), key=lambda x: -x[1]) # value 내림차순
sorted_items = sorted(d.items(), key=lambda x: (x[1], x[0])) # 복합 정렬
data_sorted = sorted(data, key = lambda x : (x["genre"], x["play"], x["index"]))존재 여부 체크
if "a" in d:
pass
if "missing" not in d:
pass기본 패턴(코딩테스트에서 매우 자주 등장)
default dict처럼 사용하기
d[key] = d.get(key, 0) + 1문자열/빈도 문제에서 거의 필수 패턴.
값이 리스트인 딕셔너리
d = {}
d.setdefault(key, []).append(value)defaultdict 사용 (키 자동 생성)
from collections import defaultdict
d = defaultdict(int) # int → 기본값 0
d2 = defaultdict(list) # list → 자동으로 빈 리스트 생성
d3 = defaultdict(lambda: 5) # 기본값 5딕셔너리 컴프리헨션
d = {x: x*x for x in range(5)}딕셔너리 뒤집기
rev = {v: k for k, v in d.items()}두 딕셔너리 병합 (Python 3.9+)
merged = d1 | d2Key 기준 정렬된 딕셔너리 만들기
sorted_dict = dict(sorted(d.items()))