Search

collections 모듈의 Counter

기본 사용법

별도의 패키지 설치 없이 사용가능하다.
from collections import Counter
Python
복사
Counter 는 여러 형태의 데이터를 인자로 받을 수 있다.
먼저 중복된 데이터가 저장된 배열을 인자로 받으면 각 원소가 몇 번씩 나오는지 저장된 객체를 반환한다.
>>> Counter(["hi", "hey", "hi", "hi", "hello", "hey"]) Counter({'hi': 3, 'hey': 2, 'hello': 1})
Python
복사
문자열을 인자로 넘기면 각 문자가 문자열에서 몇 번씩 나타나는지를 알려주는 객체가 반환된다.
>>> Counter("hello world") Counter({'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
Python
복사

Counter 를 사전처럼 사용하기

Counter 클래스는 파이썬의 기본 자료구조인 사전을 확장하고 있기 때문에, 사전에서 제공하는 api 를 그대로 사용할 수 있다.
>>> counter = Counter("hello world") >>> counter["o"], counter["l"] (2, 3)
Python
복사
특정 키에 해당하는 값을 갱신도 할 수 있다.
counter["l"] += 1 counter["h"] -= 1 counter
Python
복사
if 문에서 in 을 사용해서 특정 키가 카운터에 존재하는지 확인할 수 있다.
if "o" in counter: print("o in counter") del counter["o"] # 키 값 삭제도 된다. if "o" not in counter: print("o is not in counter")
Python
복사

가장 흔한 데이터 찾기

실전에서 Counter가 자주 쓰이는 경우는 가장 많이 나온 데이터나 가장 적게 나온 데이터를 찾는 때다.
Counter 클래스는 작업을 좀 더 쉽게 할 수 있도록 데이터의 개수가 많은 순으로 정렬된 배열을 리턴하는 most_common() 이라는 메서드를 제공한다.
from collections import Counter Counter('hello world').most_common()
Python
복사
most_common() 인자에 k 를 넘기면 해당 순위만큼의 데이터를 얻을 수 있다.
from collections import Counter Counter('hello world').most_common(1) # [('l', 3)]
Python
복사