에듀테크 프로젝트 대시보드
딕셔너리 (dict)
키→값 매핑. 3.7+ 부터 삽입 순서를 유지합니다. 키는 해시 가능해야 합니다.
d = {"name": "김", "age": 20}
d = dict(name="김", age=20)
d = dict([("a", 1), ("b", 2)])
d = dict.fromkeys(["a", "b"], 0) # => {'a': 0, 'b': 0}
d["name"] # => '김'
# d["x"] # KeyError
d.get("x") # => None
d.get("x", 0) # => 0 (기본값)d = {"a": 1}
d["b"] = 2 # 추가
d["a"] = 99 # 갱신
d.update({"c": 3, "a": 0}) # 여러 개
merged = {**d1, **d2} # 병합 (뒤가 우선)
d3 = d1 | d2 # 3.9+
d.pop("a") # 제거하고 값 반환
d.pop("x", None) # 없어도 안전
del d["b"]
d.setdefault("cnt", 0) # 없으면 넣고, 있으면 기존 값 반환d = {"a": 1, "b": 2}
for k in d: # 키
...
for k, v in d.items(): # 키·값
...
for v in d.values():
...
list(d.keys()) # => ['a', 'b']
"a" in d # => True (키 검사)
len(d) # => 2# 개수 세기
counts = {}
for ch in "banana":
counts[ch] = counts.get(ch, 0) + 1
# => {'b': 1, 'a': 3, 'n': 2}
# 그룹핑
groups = {}
for word in ["apple", "avocado", "banana"]:
groups.setdefault(word[0], []).append(word)
# 더 간단하게는 collections.Counter / defaultdict.keys() 와 .items() 는 집합처럼 & | - 연산 가능RuntimeError → list(d) 로 복사 후 순회users = {"kim": {"age": 20}, "lee": {"age": 25}}
users["kim"]["age"] # => 20
scores = {"a": 3, "b": 1, "c": 2}
sorted(scores.items(), key=lambda kv: kv[1]) # 값 기준 정렬
# => [('b', 1), ('c', 2), ('a', 3)]
max(scores, key=scores.get) # => 'a' (값이 최대인 키)