파이썬 리스트는 중복된 요소를 허용하기 때문에 하나의 요소가 여러 번 나타날 수 있습니다. 리스트에서 요소의 빈도(frequency)란 해당 요소가 리스트 안에 몇 번 등장하는지를 의미합니다. 이 글에서는 파이썬 표준 라이브러리인 collections 모듈의 Counter 클래스를 사용해 리스트 내 각 항목의 빈도를 손쉽게 구하는 방법을 알아보겠습니다.
Counter 기본 문법
Counter는 해시 가능한(hashable) 객체를 키로, 그 개수를 값으로 저장하는 딕셔너리 서브클래스입니다. 가장 기본적인 사용법은 다음과 같습니다.
from collections import Counter Counter(iterable)
여기서 iterable에는 리스트, 튜플, 문자열 등 반복 가능한 객체를 전달할 수 있으며, 각 요소의 등장 횟수가 자동으로 집계됩니다.
예제 코드
아래 코드는 Counter()로 각 요소의 빈도를 집계한 뒤, items() 메서드를 통해 결과를 순회하며 보기 좋게 출력하는 예시입니다.
from collections import Counter
days = ['Mon', 'Tue', 'Wed', 'Mon', 'Mon', 'Tue']
# 각 요소의 개수 세기
days_freq = Counter(days)
# Counter 결과 출력
print(days_freq)
# 반복문을 이용한 출력
for key, value in days_freq.items():
print(key, "has count", value)실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Counter({'Mon': 3, 'Tue': 2, 'Wed': 1})
Mon has count 3
Tue has count 2
Wed has count 1추가 팁: most_common() 활용하기
Counter는 빈도가 높은 순서대로 상위 N개 항목을 반환하는 most_common() 메서드도 제공합니다. 예를 들어 days_freq.most_common(1)을 호출하면 가장 많이 등장한 요소인 ('Mon', 3)을 바로 얻을 수 있어, 최빈값 분석에 유용하게 활용됩니다.