문법 · Python · intermediate

딕셔너리·집합·컴프리헨션

빈도 맵, 유일 집합, dict/set/list comprehension.

배우기 · Python 문법 · 14분 · 4/9 · python · 딕셔너리 · 해시

이 트랙 목차 (9)
  1. 1. 들여쓰기·타입·변수: Python 기초
  2. 2. 조건·반복: if, for, while, range
  3. 3. 리스트·슬라이스·문자열
  4. 4. 딕셔너리·집합·컴프리헨션
  5. 5. 함수·기본인자·헬퍼 나누기
  6. 6. 자주 쓰는 표준: collections 맛보기
  7. 7. 예외 기초: try · except · 입력 가드
  8. 8. itertools 맛보기: chain · product · combinations
  9. 9. 정렬 key: 커스텀 비교

dict

freq = {}
for ch in s:
    freq[ch] = freq.get(ch, 0) + 1

# 또는
from collections import Counter
freq = Counter(s)

키 존재: ch in freq. 값만 순회: freq.values().

set

seen = set()
seen.add(x)
x in seen          # 평균 O(1)
unique = list(dict.fromkeys(tokens))  # 순서 유지 중복 제거

컴프리헨션

evens = [x for x in nums if x % 2 == 0]
sq = {x: x * x for x in nums}
letters = {ch for ch in s if ch.isalpha()}

중첩이 깊어지면 가독성이 떨어집니다. 이중 for가 필요하면 일반 루프를 고려하세요.

defaultdict / deque (맛보기)

from collections import defaultdict, deque
g = defaultdict(list)
q = deque([start])

그래프 인접 리스트와 BFS 큐에 자주 씁니다. 스택·큐 원리 레슨과 연결됩니다.

object처럼 쓰지 말 것

문제 풀이에서는 클래스보다 dict/list/tuple이 보통 충분합니다. 상태를 묶을 때만 @dataclass나 튜플을 쓰세요.

컴프리헨션

squares = {x: x * x for x in range(5)}
even = {x for x in xs if x % 2 == 0}

한 줄이 길면 일반 루프로 푸세요. 가독성이 우선입니다.

setdefault / defaultdict

g = {}
g.setdefault(u, []).append(v)

그래프 인접 리스트를 만들 때 자주 씁니다.

관련 짧은 원리

관련 문제