[이론] Collections 모듈의 Counter

jeongjeong2·2023년 1월 24일
0

For coding test

목록 보기
21/59

count()는 시간 복잡도가 O(n)이다. (n = len(str))

for문 내에서 count()를 사용하면 그 복잡도가 급격히 증가하므로 Collections Counter를 사용하면 이점이 있다.

from collections import Counter

  • Counter 생성자는 여러 형태의 데이터를 인자로 받는데, 중복된 데이터가 저장된 배열을 인자로 넣으면 각 원소가 몇 번씩 나오는지 저장된 객체를 dictionary 형태로 출력한다.
from collections import Counter
>> Counter(["hi", "hey", "hi", "hi", "hello", "hey"])
Counter({'hi': 3, 'hey': 2, 'hello': 1})
  • 문자열을 인자로 넣었을 경우
>> Counter("hello world")
Counter({'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
  • dictionary 형태로 출력하기 때문에 대괄호에 key값을 대입해서 그 value값을 읽어낼 수 있다.
counter = Counter("hello world")
counter["o"], counter["l"]
(2, 3)

0개의 댓글