python) counter

2021. 8. 8. 22:19python

반응형

https://ek-koh.github.io/python/counter/

데이터 카운팅할때 사용.

 

from collections import Counter

str = 'aaabbc'

Counter(str) // Counter({'a':3, 'b':2, 'c':1})

 

arr = [1,2,4,4]

Counter(arr) // Counter({1:1, 2:1, 4:2})

 

  • clear() : 카운터 객체에서 모든 key-value 쌍을 제거
  • copy() : 카운터 객체의 복사본을 반환
  • elements() : 카운터 숫자만큼 요소 반환
    • 리스트를 가지고 카운터 객체를 만들었다면, 다시 리스트로 돌린다고 생각하면 쉽다. 물론 순서는 바뀐다. list(c2.elements())와 같이 사용.
  • get() : 인자로 key를 입력하면 해당 key와 매칭되는 value를 반환
  • items() : key, value 쌍을 튜플 형태로 반환
  • keys() : 카운터 객체의 key들을 반환
  • most_common() : 가장 빈도수가 높은 key, value 쌍부터 튜플 형태로 반환. 인자로 숫자(개수)를 전달하면 가장 빈도수가 높은 것부터 해당 개수만큼의 쌍만이 반환됨
  • pop(), popitem()
    • pop() : 인자로 key를 반드시 전달해야 하며, key와 매칭되는 value를 반환하고 해당 key, value 쌍을 카운터 객체에서 제거
    • popitem() : 전달하는 인자가 없어야 하며, 가장 뒤의 key, value 쌍을 튜플 형태로 반환하고 해당 쌍을 카운터 객체에서 제거
  • setdefault() : 카운터 객체에 key, value 쌍을 추가할 때 사용할 수 있음
    • key만 전달하면 카운트 수는 디폴트로 None
    • key와 함께 default=10과 같이 전달하면 key에 해당하는 카운트에 입력한 숫자가 반영됨
  • subtract() : iterable을 전달하면 각 요소의 값을 각각 빼주고 그 결과의 카운트는 마이너스 값을 가질 수도 있음
  • update() : iterable을 전달하여 같은 값이 있으면 카운트가 추가되게 하고 없으면 새로운 key, value 쌍을 생성
  • values() : 카운터 객체의 value, 즉 카운트들을 반환

 

c3 = Counter({'a': 3, 'b': 5, 'c': 1, 'd': 4})

c4 = Counter({'a': 1, 'b': 2, 'c': 8, 'e': 4})

c3 + c4 # Counter({'a': 4, 'b': 7, 'c': 9, 'd': 4, 'e': 4})

c3 - c4 # Counter({'a': 2, 'b': 3, 'd': 4})

c3 & c4 # Counter({'a': 1, 'b': 2, 'c': 1})

c3 | c4 # Counter({'a': 3, 'b': 5, 'c': 8, 'd': 4, 'e': 4})

 

c3.subtract(['a', 'a', 'a', 'a', 'a'])

c3 # Counter({'a': -2, 'b': 5, 'c': 1, 'd': 4})

+c3 # Counter({'b': 5, 'c': 1, 'd': 4})

-c3 # Counter({'a': 2})

반응형

'python' 카테고리의 다른 글

python) bisect  (0) 2021.08.08
python) list, 튜플, 딕셔너리, set  (0) 2021.08.08
python) 연산자  (0) 2021.08.08
python) itertools  (0) 2021.08.08