Counter는 「리스트·문자열의 각 요소가 몇 번 나오는지 세는」 일을 한 줄로 끝내는 특수 딕셔너리입니다.
collections 모듈에 들어 있고, 빈도 분석·최빈값 찾기에 결정적으로 편리합니다.
기본 사용.
from collections import Counter.
words = ["사과", "배", "사과", "감", "배", "사과"].
Counter(words) → Counter({"사과": 3, "배": 2, "감": 1}).
한 줄로 빈도가 정리됩니다.
유용한 메서드.
.most_common(2) — 상위 2개 (값, 빈도) 쌍의 리스트.
.total() — 전체 개수(Python 3.10+).
산술 연산도 가능 — Counter1 + Counter2(빈도 합), Counter1 - Counter2(빈도 차이), Counter1 & Counter2(공통 최소 빈도).
활용 예시.
text = "hello world"; Counter(text) — 글자별 빈도.
words = open("essay.txt").read().split(); Counter(words).most_common(10) — 글에서 가장 자주 나온 10개 단어.
비유하자면 Counter는 「투표함에서 표를 자동으로 분류·집계하는 기계」와 같습니다.
일반 딕셔너리로 직접 빈도를 세려면 6~10줄이 필요한 일을 1줄로 끝내고, 그 결과에 풍부한 메서드까지 제공합니다.
자연어 처리·로그 분석·통계 작업에 매우 자주 쓰입니다.
한 줄 요약
Counter는 빈도 세기 전용 딕셔너리로, Counter(items) 한 줄로 모든 요소의 빈도를 셉니다.
.most_common(n)으로 상위 n개를 즉시 얻고 산술 연산도 가능합니다.
더 알아볼 것
- Counter의 산술 연산 자세히
- Counter vs 일반 dict 사용 비교
- 빈도 기반 자연어 처리 입문