본문 바로가기

Developer/Python

[Python] collections 모듈 Counter 클래스 사용하기

알고리즘 공부를 하다가, Counter 클래스에 대해 알게되었다.

문자열을 입력했을 때, 각 글자 수를 세어주는 함수이다.

 

import collections

collections.Counter('hello world')
# Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})

 

이렇게 각 글자별로 갯수를 세어준다.

항상 for문으로 진행했었는데, 이렇게 사용하니까 아주 편하다.

 

import collections

collections.Counter('hello world').most_common()
# [('l', 3), ('o', 2), ('h', 1), ('e', 1), (' ', 1), ('w', 1), ('r', 1), ('d', 1)]

most_common()을 사용하면, 가장 많이 나온 알파벳부터 출력해서 볼 수있다.

 

그리고 가장 많이 나온 알파벳을 출력할 수도 있다.

import collections

collections.Counter('hello world').most_common(1)
# [('l', 3)]

most_common(n) 을 사용하면, 가장 많이 나온 알파벳 부터 차례로 n개 출력할 수 있다.

 

import collections

def solution():
    answer = collections.Counter("HELLO WORLD") - collections.Counter("HELLO WORL")
    return list(answer.keys())[0]

print(solution())

문자열 두개를 이용해서, 빼기 기능도 가능하기 때문에,

알고리즘 문제 풀때도 필요한 곳이 있었다.

 

collections모듈을 사용해보긴 했지만, Counter 모듈은 처음 사용해봤다.