본문 바로가기

프로그래밍/Coding

[기초문법] Python Counter object

Counter는 Python의 collections 모듈에서 제공하는 특수한 딕셔너리 형태로, 해시 가능한(hashable) 객체를 카운팅 하는데 사용됩니다. 각 객체를 키(key)로 하고, 그 객체의 개수를 값(value)으로 저장합니다. 이는 데이터의 개수를 셀 때 매우 유용하며, 일단 딕셔너리와 비슷한 인터페이스를 가지고 있지만, 카운팅과 관련된 추가적인 기능들을 제공합니다. 
주요 특징 
  • 해시 가능한 객체의 개수를 세어서 저장 
  • 각 객체는 딕셔너리의 키로 저장되며, 해당 객체의 개수는 딕셔너리의 값으로 저장 
  • 객체의 개수가 0이 되거나 음수가 되더라도 자동으로 Counter에서 제거되지 않음
기본 사용법 
from collections import Counter

# 리스트의 요소를 카운팅
cnt = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])

# 요소의 개수 출력
print(cnt)  # Counter({'blue': 3, 'red': 2, 'green': 1})

# 특정 요소의 개수 조회
print(cnt['blue'])  # 3
print(cnt['yellow'])  # 0, 존재하지 않는 요소의 개수는 0으로 반환됨

# 요소의 개수 업데이트
cnt.update(['blue', 'yellow', 'yellow'])
print(cnt)  # Counter({'blue': 4, 'yellow': 2, 'red': 2, 'green': 1})
  • 주요 메서드 
    • elements() : 카운트된 요소들을 반복자(iterator) 형태로 반환. 개수가 1 이상인 요소만 반환 
    • most_common(n) : 가장 빈도가 높은 상위 n개의 요소와 그 개수를 리스트 형태로 반환. n이 지정되지 않으면 모든 요소를 빈도순으로 반환 
    • subtract(iterable or mapping) : 다른 Counter 객체나 반복 가능한 객체에서 요소의 개수를 빼줌
  • 주의 사항 
    • Couter 객체는 딕셔너리의 모든 메서드를 사용할 수 있음. 그러나 Counter에 특화된 메서드를 사용하는 것이 더욱 효율적인 경우가 많음 
    • Counter 객체끼리 덧셈, 뺄셈, 교집합, 합집합과 같은 연산이 가능. 이를 통해 두 데이터 집단간의 차이나 공통 요소를 쉽게 찾아 낼 수 있음 

https://wikidocs.net/233689

 

4-11. Counter

## Counter란 `Counter`는 Python의 `collections` 모듈에서 제공하는 특수한 딕셔너리 형태로, 해시 가능한(hashable) 객체를 카운팅하는데 사용…

wikidocs.net