[Python] Counter 사용법

kiwonkim·2021년 4월 23일

🤔 Counter란?

  • collections.Counter() 함수.
  • 인자로 들어오는 컨테이너에서 원소의 개수를 세어 원소 : 개수 형태의 Counter 자료형으로 반환해주는 함수.
  • Counter는 딕셔너리를 extend 한 자료형. 딕셔너리 내장함수 모두 사용가능.

💡 함수들

1. update(container)

Counter 자료형의 값에 container의 값을 갱신시킨다.

>> c = Counter()
>> c.update("abcd")
Counter({'a' : 1, 'b' : 1, 'c': 1, 'd' : 1})

>> c.update({'d' : 3, 'e' : 4})
Counter({'a' : 1, 'b' : 1, 'c': 1, 'd' : 4, 'e' : 4})

중복 key의 value 값이 인자의 value로 갱신되는 dictionary의 update와 다르게 더해지는 것을 확인할 수 있다.

2. elements()

Counter의 요소를 풀어서 반환한다.

>> list(c.elements())
['a', 'b', 'c', 'd', 'd', 'd', 'd', 'e', 'e', 'e', 'e']

list로 형변환 하여 사용한다.

3. most_common(n)

빈도수가 높은 순으로 상위 n 개를 tuple의 list 형태로 반환한다.
n 이 없으면 전체를 반환한다.

>> c.most_common(2)
[('e', 4), ('d', 4)]

dictionary의 items를 list형으로 변환한 것과 같은꼴.

4. subtract(counter)

인자로 들어오는 counter 만큼 요소 뺄셈을 진행한다.
앞의 counter에 해당 key가 존재하지 않는 경우 value값이 음수가 된다.


덧셈과 뺄셈

Counter 간에 덧셈과 뺄셈이 가능하다.

>> a = collections.Counter(['a' 'a', 'b', 'b', 'c', 'd'])
>> b = collections.Counter(aabef)

>> a + b
Counter(['a' : 4, 'b' : 3, 'c' : 1, 'd' : 1, 'e' : 1, 'f': 1])

>> a - b
Counter(['b' : 1,'d' : 1])

subtract와 다르게 뺄셈은 음수값은 제외시킨다.

0개의 댓글