본문 바로가기
Python/Data Structure

[Python]리스트 값들 카운트하고 가장 빈도수 높은 값 찾기

by 전봇대파괴자 2021. 8. 19.

 

이번에는 리스트를 구성하는 값(item)을 카운트하고, 그 중에서 가장 중복이 많은 값을 찾는 방법을 알아보겠습니다.

아래의 샘플 리스트를 볼까요?

# 1. 샘플 리스트 만들기
sample_li = ['사과', '배', '수박', '딸기', '배', '배', '사과']

 

여러 개의 중복값들을 확인할 수 있습니다. 

이 값들을 보기 좋게 item별로 카운트해 보고 싶을 때 collections 라이브러리의 Counter를 사용합니다.

# 라이브러리 불러오기
from collections import Counter

# 2. item별 카운트하기
count_items = Counter(sample_li)
print(count_items)

>> Counter({'배': 3, '사과': 2, '수박': 1, '딸기': 1})

 

이제 가장 중복이 높은 값만 가져와 보겠습니다.

# 3. 가장 수가 많은 item 찾기
max_item = count_items.most_common(n=1) 
print(max_item)

>> [('배', 3)]


# 4. TOP 2
top_2_items = count_items.most_common(n=2)
print(top_2_items)

>> [('배', 3), ('사과', 2)]

위와 같이, n=2일 경우 가장 카운트 수가 많은 item, 그 다음으로 수가 많은 item 두 개를 반환합니다.