본문 바로가기

Computer/Python

collections 모듈 (2) - Counter

반응형

Counter는 주어진 리스트, 문자열 등의 원소의 빈도 값을 "원소:빈도수"로 return하는 dict의 하위 클래스입니다. 빈도 수를 셀 일이 있을 때 사용하면 매우 유용합니다.

Counter 메소드

Counter에는 다음과 같이 리스트, 문자열, 튜플 등의 자료형에서 동일한 값의 자료가 얼마인지 파악하는데 사용됩니다.

elements()

인스턴스 요소의 개수를 카운터 개수만큼 보여줍니다.

most_common(n)

most_common 메소드는 굉장히 유용합니다. 자주 등장하는 최빈값을 (key, value)의 튜플로 묶어 리스트로 return합니다. 이 때, 파라미터로 들어가는 n 값을 통해 return되는 원소의 개수를 조절할 수 있습니다.

subtract()

두 개의 Counter 객체에서 값을 빼는 연산입니다. 키가 없을 경우 음수의 값이 출력됩니다.

subtract의 결과에 음수가 포함될 수 있습니다. 이 때, 음수를 가진 키를 제거하기 위해서는 단순히 빈 Counter 객체를 하나 만들어 더하면 삭제됩니다.

update()

Counter 객체의 값을 update합니다. 딕셔너리의 update와 비슷하지만 문자열이나 리스트 형태로도 입력 가능합니다.

Counter 연산

Counter에서 주목할 점은 string이나 정수처럼 더하기, 빼기 등의 사칙연산과 교집합, 합집합의 집합연산을 제공한다는 점입니다.

사칙연산

Counter 객체끼리 더하기, 빼기가 가능합니다. 주의할 점은 빼기 시 빈도수가 0 이하가 될 때는 해당 원소가 자동으로  삭제됩니다. 위의 subtract() 메소드와 다른 점이겠죠.

집합연산

Counter는 객체끼리의 교집합, 합집합 연산을 지원합니다. 교집합의 경우 키가 같고 겹치는 키의 값중 작은 값을 return합니다. 합집합의 경우는 모든 키를 return하면서 겹치는 키의 경우 각 값 중 큰 값을 return합니다.

홍머스 정리

  • 각 원소별 빈도수를 딕셔너리형태로 return

참조

반응형