파이썬 Counter 객체에서 가장 개수가 많은 항목 확인

in hive-141029 •  2 months ago 

우선 파이썬 Counter 객체를 이용해서 리스트(list) 원소의 개수를 세는 방법은 이전 포스팅을 참고하시기 바랍니다. 아래의 링크입니다.

파이썬에서 리스트(list) 원소의 개수를 세는 방법 - Counter

Counter 객체의 most_common() 함수를 이용하면 가장 많은 개수를 가진 항목을 확인 할 수 있습니다. 이전 포스팅의 예제 코드를 이용해 보자면 아래와 같습니다.

from collections import Counter

c = Counter()

x = ['apple', 'banana', 'orange', 'apple']
y = ['orange', 'apple', 'lemon']

c.update(x)
c.update(y)
for key in c:
  print(key, '-', c[key])

apple - 3
banana - 1
orange - 2
lemon - 1

most_common() 함수는 가장 개수가 많은 원소부터 차례대로 정렬된 리스트(list)를 만듭니다.


m = c.most_common()

print(m)

[('apple', 3), ('orange', 2), ('banana', 1), ('lemon', 1)]

most_common() 함수는 키(key)와 값(value)이 튜플(tuple) 형식으로 이루어진 원소를 가진 리스트(list)를 반환합니다. 위의 경우 ('apple', 3)은 m[0], 'apple'은 m[0][0], 3은 m[0][1]에 할당될 것입니다.

가장 개수가 많은 원소만 가져와 확인하려면 아래와 같이 인자(argument)를 1로 주면 됩니다.

m = c.most_common(1)
print(m)

[('apple', 3)]

만약 가장 개수가 많은 원소와 두번째로 개수가 많은 원소를 확인하려면 아래와 같이 될 것입니다.

m = c.most_common(2)
print(m)

[('apple', 3), ('orange', 2)]

총 몇개의 항목이 있는지는 Counter 객체의 길이를 확인하면 됩니다.

print(len(c))

4


@joviansummer의 스팀 프로젝트

스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다.
(https://steemitwallet.com/~witnesses)

jswit 증인 노드 프로젝트를 시작합니다.

jsup 업보팅(upvoting) 서비스 소개

jsup 수혜자 지정 기능 추가

jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다.

jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기

STEEM.NFT - 디지털 아트 보존 프로젝트

Posted through the AVLE Dapp (https://avle.io)

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Hello friend!
I'm @steem.history, who is steem witness.
Thank you for witnessvoting for me.
image.png
please click it!
image.png
(Go to https://steemit.com/~witnesses and type fbslo at the bottom of the page)

image.png

Upvoted! Thank you for supporting witness @jswit.

Nice post keep it up buddy.
Hope you got the 100 STEEM & 1000 TAKI Airdrop, if not get it quickly before the campaign ends.
go to this official taki announcement how to get the airdrop CLICK HERE

Please be careful @joviansummer

And do not open link shared by @iggib

I was warned about this user and I was told not open that link myself. It's a mass spam and I would be very careful (simple advice: do not open that link).

ps. Just have a look at this user comments (https://steemit.com/@iggib/comments) to see for yourself that he shared same message with this suspicious link to thousands of users.

Cheers, Piotr

I know it's a malicious link. Thanks for the comment!