frozenset 사용하기

Tasker_Jang·2026년 3월 31일

1. 기본 개념

frozenset은 Python 내장 타입입니다. 변경 불가능한(immutable) 집합(set)으로, 일반 set과 동일하게 중복 제거·포함 여부 검사를 지원하지만 생성 후 수정할 수 없습니다.

frozen: frozenset[str] = frozenset({"a", "b", "c"})

2. 기본 사용법

KEYWORDS: frozenset[str] = frozenset({
    "apple",
    "banana",
    "cherry",
})

# 포함 여부 검사 — O(1)
"apple" in KEYWORDS   # True
"grape" in KEYWORDS   # False

# 반복
for word in KEYWORDS:
    print(word)

3. set vs frozenset

# set — 변경 가능
mutable = {"a", "b"}
mutable.add("c")      # OK
mutable.remove("a")   # OK

# frozenset — 변경 불가
frozen = frozenset({"a", "b"})
frozen.add("c")       # AttributeError 발생

상수로 정의하는 키워드 목록에는 frozenset이 적합합니다. 실수로 런타임 중 값이 바뀌는 걸 방지합니다.


4. 타입 힌트와 모듈 상수로 쓰는 패턴

# 모듈 최상단에 상수로 선언
STOP_WORDS: frozenset[str] = frozenset({
    "the",
    "a",
    "an",
    "is",
})

def filter_tokens(tokens: list[str]) -> list[str]:
    return [t for t in tokens if t not in STOP_WORDS]

frozenset[str]타입 힌트로, 이 집합이 문자열만 담는다는 것을 명시합니다.


5. 핵심 요약

항목setfrozenset
변경 가능 여부OX
중복 제거OO
포함 검사 속도O(1)O(1)
딕셔너리 키 사용XO
상수 정의 적합성낮음높음

한 줄 요약: frozenset은 변경 불가능한 집합으로, 수정되어선 안 되는 키워드·필터 목록을 모듈 상수로 선언할 때 set보다 안전한 선택입니다.

profile
ML Engineer 🧠 | AI 모델 개발과 최적화 경험을 기록하며 성장하는 개발자 🚀 The light that burns twice as bright burns half as long ✨

0개의 댓글