Python
[Python3] Collection 모듈 내 Counter 관련
sssukho
2020. 3. 17. 09:22
반응형
Counter? 뭐하는거지
Collection 모듈은 외부 패키지 설치가 필요없이 기본으로 파이썬 내에 내장되어 있는 모듈이다. 하지만 따로 import를 해줘서 사용해야만 한다. 이 안에는 다음과 같은 주요 메소드 및 클래스들이 있다.
- namedtuple() : 튜플 타입의 subclass를 만들어주는 메소드
- OrderedDict : 순서가 있는 dictionary를 만들어주는 클래스
- Counter : hash 가능한 객체를 카운트하는 dictionary 클래스
알고리즘 문제를 풀 때 뭔가 유용할 것 같아서 정리를 해본다.
기본 사용법
def find_max(word) :
counter = Counter(word)
max_count = -1
for letter in counter:
if counter[letter] > max_count:
max_count = counter[letter]
max_letter = letter
return max_letter, max_count
find_max('hello world')
############### RESULT ################
('l', 3)
collections 내 Counter 클래스를 사용하지 않는다면 다음과 같은 형태로 주어진 단어에서의 갯수가 가장 많은 알파벳과 그 개수를 구하는 코드를 작성할 것이다. 하지만 Counter 클래스를 사용한다면 다음과 같이 작성할 수 있다.
from collections import Counter
print(Counter('hello world').most_common())
most_common() 메소드는 데이터의 개수가 많은 순으로 정렬된 튜플 리스트를 리턴하는 기능을 수행한다. 또한, 인자에 숫자를 넘기면 그 숫자의 갯수만큼만 앞에서부터 뽑아서 리턴을 해준다. 앞으로 다양한 알고리즘 문제를 풀면서 유용하게 사용할 수 있을 것만 같다.
from collections import Counter
print(Counter('hello world').most_common(2))
반응형