반응형
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))
반응형
'Python' 카테고리의 다른 글
[Python3] 내장 함수 관련 정리 (0) | 2020.03.19 |
---|---|
[Python3] 함수 관련 정리 (0) | 2020.03.15 |
[Python3] 제어문 관련 정리 (0) | 2020.03.13 |
[Python3] 집합 관련 정리 (0) | 2020.03.12 |
[Python3] 제어문 관련 정리 (0) | 2020.03.12 |