출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=wideeyed&logNo=221540885097
추가 참고 :
1. https://ek-koh.github.io/python/counter/
2. https://www.daleseo.com/python-collections-counter/
리스트 원소들의 개수가 알고 싶을 때 Counter를 사용할 수 있습니다.
리스트 원소 개수를 세는 코드를 직접 만들어서 counter모듈을 사용했을 때와 비교해보겠습니다.
먼저 2개의 리스트가 있습니다.
나의 리스트가 먼저 있었고 이후 추가로 리스트가 나타났습니다.
1) 직접 구하기
나의 리스트의 원소들을 반복문을 이용하여 하나씩 셉니다.
그리고 추가 리스트의 원소들도 반복문을 이용하여 셉니다.
그리고 가장 많이 나타난 2개는 값으로 내림차순으로 정렬하여 얻습니다.
2) Counter를 사용하여 구하기
most_common은 "가장 흔한다"는 의미로 많이 나타난 것을 반환한다
counter를 이용하여 짧은 문장으로 더 가독성있게 구할 수 있습니다.
또한 counter 인스턴스간 더하기, 빼기, 교집합, 합집합 등의 기능도 추가로 이용할 수 있습니다.
[소스 코드]
my_list = ['Tick', 'Tock', 'Tock'] # 나의 리스트 new_list = ['Tick', 'Tock', 'Song'] # 추가로 나타난 리스트 # 나의 리스트 원소의 개수를 직접 센다 from collections import defaultdict counter = defaultdict(int) for item in my_list: counter[item] += 1 print(counter) # 추가된 리스트 원소의 개수를 누적하여 직접 센다 for item in new_list: counter[item] += 1 print(counter) # 값으로 정렬하여 가장 많이 나타난 2개를 출력한다 print(sorted(counter.items(), key=lambda kv: kv[1], reverse=True)[:2])
my_list = ['Tick', 'Tock', 'Tock'] # 나의 리스트 new_list = ['Tick', 'Tock', 'Song'] # 추가로 나타난 리스트 # 나의 리스트를 센다 from collections import Counter counter = Counter(my_list) print(counter) # 추가된 리스트를 누적하여 센다 counter.update(new_list) print(counter) # 가장 많이 나타난 2개를 출력한다 print(counter.most_common(n=2))
끝.
'프로그래밍 언어별 tools > 파이썬' 카테고리의 다른 글
리스트 정렬 sort, sorted 활용법 (0) | 2021.10.01 |
---|---|
파이썬 reduce 함수 사용법 (0) | 2021.09.29 |
[python] 파이썬 join 함수 정리 및 예제 (문자열 합치기) (0) | 2021.08.23 |
[python] 파이썬 리스트(list) 정리 및 예제 (2탄 응용편) (0) | 2021.08.23 |
[python] 파이썬 리스트(list) 정리 및 예제 (1탄 기본편) (0) | 2021.08.23 |