✅ Counter란 무엇인가?
Counter는 Python의 내장 모듈 collections에 포함된 클래스입니다.
간단히 말해, "리스트나 문자열 등에서 항목별 개수를 자동으로 세어주는 딕셔너리" 입니다.
from collections import Counter
✅ 왜 쓰나요? (용도)
Counter는 다음과 같은 상황에서 매우 유용합니다 :
| 상황 | 예시 |
| 문자열에서 글자 수 세기 | "hello" → {'h':1, 'e':1, 'l':2, 'o':1} |
| 리스트에서 값의 빈도 세기 | [1, 2, 2, 3] → {1:1, 2:2, 3:1} |
| 두 집합이 같은 구성인지 비교할 때 | "abc" vs "bca" (문자 순서는 다르지만 구성은 같음) |
✅ 작동 원리
- Counter는 딕셔너리처럼 동작하지만, 자동으로 개수를 셉니다.
- 내부적으로는 {원소: 개수} 형태로 저장됩니다.
<예시 1: 문자열에서 글자 세기>
from collections import Counter s = "banana" count = Counter(s) print(count)
→ 출력 : Counter({'a': 3, 'n': 2, 'b': 1})
<예시 2: 리스트에서 숫자 빈도 세기>
nums = [1, 2, 2, 3, 3, 3] Counter(nums)
→ 출력 : Counter({3: 3, 2: 2, 1: 1})
✅ 어떤 의미로 쓰이나요?
Counter는 "각 항목이 얼마나 자주 나오는가?"라는 의미를 표현할 수 있게 해줍니다.
즉, "빈도", "출현 횟수"를 코드로 쉽게 나타낼 수 있도록 도와줍니다.
✅ 주요 기능 요약
| 기능 | 설명 | 예시 |
| Counter(iterable) | 각 항목의 개수를 자동으로 세어줌 | Counter("aab") → {'a':2, 'b':1} |
| c[x] | 항목 x의 개수 | c["a"] → 2 |
| c.items() | (항목, 개수) 쌍들 | 루프 돌릴 때 유용 |
| c.most_common(n) | 가장 많이 나온 항목 n개 | c.most_common(1) |
| c1 + c2 | 두 Counter를 더함 (개수 합침) | Counter("aab") + Counter("bbc") |
✅ 동작 예시
○ 입력 #1 : 1234567 6453721
- Counter("1234567") → {'1':1, '2':1, ..., '7':1}
- Counter("6453721") → 같은 구성 → ✅ YES
○ 입력 #2 : 112200 01201
- Counter("112200") → {'1':2, '2':2, '0':2}
- Counter("01201") → {'0':2, '1':2, '2':1} → 2의 개수가 다름 → ❌ NO
✅ 결론 요약
| 항목 | 설명 |
| 정식 이름 | collections.Counter |
| 주 용도 | 문자열/리스트에서 항목 개수 세기 |
| 반환 타입 | 딕셔너리와 비슷한 객체 |
| 의미 | "각 항목이 몇 번 나왔는지"를 알려주는 자료 구조 |
'Python 코드' 카테고리의 다른 글
| [Python] Keras(TensorFlow) (3) | 2025.07.17 |
|---|---|
| [Python] DataFrame.astype() (1) | 2025.07.14 |
| [Python] DataFrame.replace() (1) | 2025.07.13 |
| [Python] pandas.get_dummies() (1) | 2025.07.12 |
| [Python] DataFrame.drop() (1) | 2025.07.12 |