Python의 Counter는 컨테이너에 있는 요소들의 개수를 셀 때 사용하는 딕셔너리의 서브클래스입니다. Counter는 collections 모듈에 포함되어 있으며, 리스트, 문자열, 튜플 등과 같은 iterable 객체를 입력으로 받아 각 요소의 개수를 세는 기능을 제공합니다.
Counter 객체를 생성하려면 iterable 객체를 인자로 전달하면 됩니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
from collections import Counter
# 리스트를 입력으로 받아 Counter 객체 생성
lst = [1, 2, 3, 2, 1, 3, 3, 4, 5, 4, 4]
counter = Counter(lst)
print(counter)
# 출력: Counter({3: 3, 4: 3, 1: 2, 2: 2, 5: 1})
위 예시에서 lst는 리스트이며, Counter(lst)를 호출하여 counter라는 Counter 객체를 생성하였습니다. counter 객체는 리스트 lst의 요소들과 그에 해당하는 개수를 딕셔너리 형태로 저장합니다. 출력 결과를 보면, 각 요소들과 그에 해당하는 개수가 표시되는 것을 확인할 수 있습니다.
Counter 객체는 딕셔너리의 기능을 모두 갖고 있습니다. 따라서, 특정 요소의 개수를 확인하거나, 요소의 개수를 증가시키거나 감소시킬 수도 있습니다.
# 요소의 개수 확인
print(counter[3]) # 출력: 3
# 요소의 개수 증가
counter[4] += 1
print(counter) # 출력: Counter({4: 4, 3: 3, 1: 2, 2: 2, 5: 1})
# 요소의 개수 감소
counter[2] -= 1
print(counter) # 출력: Counter({4: 4, 3: 3, 1: 2, 2: 1, 5: 1})
Counter 객체는 다양한 유용한 메서드들을 제공합니다. 몇 가지 예시를 들면 다음과 같습니다.
elements(): Counter 객체에 포함된 요소들을 반복 가능한 객체로 반환합니다.
most_common([n]): Counter 객체에 포함된 요소들을 개수가 많은 순서대로 반환합니다. n을 지정하면 가장 많은 n개의 요소를 반환합니다.
subtract([iterable-or-mapping]): Counter 객체에서 다른 iterable 객체나 매핑 객체에 포함된 요소들을 뺍니다.
그 외에도 update(), clear(), copy() 등 다양한 메서드가 있습니다.
Counter는 데이터 분석, 통계, 문서 처리 등 다양한 분야에서 유용하게 활용될 수 있는 파이썬의 강력한 도구입니다.
[참조]