Python 코드

[Python] Counter 함수 (from collections import Counter)

PaperDrop 2025. 7. 3. 22:57

✅ 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