Collections 모듈 - Counter 사용법

Joo·2024년 9월 24일

CS & Algorithm etc

목록 보기
24/33

from collections import Counter

문자열을 인자로 넘기면 각 문자가 문자열에 몇 번씩 나타나는지 알려주는 객체가 반환됨

  • 리스트, 문자열, 튜플 등 인자로 받을 수 있음
  • 딕셔너리처럼 key-value 쌍을 사용해 값을 조회하거나, elements(), most_common() 등의 메소드 사용할 수 있음
  • 사칙연산도 가능

예시

from colelctions import Counter

# 문자열에서 각 문자 개수 세기
text = "hello world"
c1 = Counter(text)

print(c1) # Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})

# 리스트에서 각 숫자 빈도수 세기
numbers = [1, 2, 2, 3, 3, 3]
c2 = Counter(numbers)

print(c2)  # Counter({3: 3, 2: 2, 1: 1})

주요 메소드

  1. most_common()

요소들을 빈도수가 많은 순서대로 나열할 때 사용함
인자로 숫자 입력하면 그 숫자만큼 가장 자주 등장한 요소 반환함

# 가장 많이 등장한 문자 2개 찾기
printer(c1.most_common(2))   
# 결과: [('l', 3), ('o', 2)]
  1. elements()

각 요소가 등장한 횟수만큼 반복해 반환함

print(list(counter.element()))
# 결과: ['h', 'e', 'l', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
  1. 사칙연산

두 개 이상의 Counter 객체에 대해 합, 차, 교집합, 합집합 계산 가능

counter1 = Counter(a=3, b=1)
counter2 = Counter(a=1, b=2)
print(counter1 + counter2)  # 결과: Counter({'a': 4, 'b': 3})  # 요소별 합
print(counter1 - counter2)  # 결과: Counter({'a': 2})  # 요소별 차




다음 번에는 collections의 Counter를 사용한 문제 풀이를 다룰 것임

profile
적당히 공부한 거 정리하는 곳

0개의 댓글