일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 윈도우10
- 비주얼베이직
- 윈도우11
- 오피스
- VBA
- 엑셀
- 파이썬3
- matlab
- pyqt5
- pythongui
- office
- 안드로이드
- windows
- 파이썬GUI
- Windows11
- Windows10
- python
- 아웃룩
- python3
- 파워포인트
- 파이썬
- 깃
- Outlook
- Android
- pandas
- 문자열
- Excel
- win32com
- html
- git
Appia의 IT세상
파이썬[Python] Counter 함수 - collections 모듈 / 알파벳 사용빈도 확인 본문
이번 포스팅은 collection 모듈에 포함되어 있는 Counter 함수에 대해서 살펴보고자 합니다. 실제, 저의 블로그의 유입 하신 분들중에 [파이썬 알파벳 갯수]로 검색해서 들어오신 분이 있었던 것 같습니다. 불행히도, 그 분께서 원하시는 답을 찾아가셨는지 정확하지 않습니다. 그래서 아마도, 이와 같이 검색하면 저의 블로그가 나오고 그래서 향후에 동일하게 검색해서 들어오시는 분들을 위해서 이 포스팅을 할려고 합니다.
그리고 이참에 또한 각 모듈들에 대해서 간단히 이야기를 해보고자 하는 생각도 가지고 있습니다. ( collection 모듈을 시작으로 시작해볼까 합니다.)
Counter의 함수는 컨테이너등에 동일한 자료가 몇 개인지 확인하는 데 사용하는 객체입니다. 그럼 간단하게 예를 들어보겠습니다.
from collections import Counter list = ['Hello', 'HI', 'How', 'When', 'Where', 'Hello'] print(Counter(list)) | cs |
위의 결과를 실행하면 다음과 같은 형태로 나옵니다.
Counter({'Hello': 2, 'HI': 1, 'How': 1, 'When': 1, 'Where': 1}) | cs |
보이시는 바와 같이 딕셔너리 형태로 출력이 됩니다. 선언된 리스트를 Counter() 인자로 넣었더니, 위와 같이 사용빈도에 대해서 딕셔너리에 대해서
알파벳 사용빈도 확인 (문자열 사용)
그럼 위에서 든 예제를 조금 다르게 활용하여 알파벳이 얼마나 사용되었는지 확인해보도록 하겠습니다. 그럼 먼저 다음과 같은 예제를 한번 살펴보겠습니다.
from collections import Counter value = "Hello Appia" print(Counter(value)) | cs |
위의 예제를 실행하면 다음과 같은 결과가 나옵니다.
Counter({'l': 2, 'p': 2, 'H': 1, 'e': 1, 'o': 1, ' ': 1, 'A': 1, 'i': 1, 'a': 1}) | cs |
즉, 문자열을 입력하면 사용된 알파벳 수에 대해서 확인이 가능합니다. 위의 코드를 조금 수정해서 보기 편하게 해보도록 하겠습니다.
from collections import Counter value = "Hello Appia" countValue = Counter(value) for key,value in countValue.items(): print(key,':',value) | cs |
Counter클래스의 반환값이 딕셔너리 형태이기 때문에 루프 형태를 돌릴 수 있습니다. 그럼 다음과 같은 결과가 나옵니다.
H : 1 e : 1 l : 2 o : 1 : 1 A : 1 p : 2 i : 1 a : 1 | cs |
그럼 Counter를 이용해서 값을 입력도 가능합니다. 다음 예제를 한번 살펴보겠습니다.
from collections import Counter countValue = Counter(A=1,B=2,C=3) print(countValue) print(sorted(countValue.elements())) | cs |
A = 1, B = 2, C = 3를 통해 값을 생성할 수도 있습니다. 그럼 결과를 한번 살펴보도록 하겠습니다.
Counter({'C': 3, 'B': 2, 'A': 1}) ['A', 'B', 'B', 'C', 'C', 'C'] | cs |
위와 같이 생성도 가능합니다.
Counter의 내부 메소드
그럼 이제는 Counter의 포함되어 있는 내부 함수/ 즉 메소드들에 대해서 한번 살펴보고자 합니다.
most_common()
Counter()에서 가장 빈도수가 높은 순으로 표시해 주는 하수 입니다. 단, 인자값으로 숫자를 입력하시면 그 숫자번째까지의 빈도수를 표시해줍니다.
from collections import Counter value = "Hello Appia" countValue = Counter(value) print(countValue.most_common()) print(countValue.most_common(2)) | cs |
위의 예제를 바탕으로 하면 다음과 같은 결과가 나옵니다.
[('l', 2), ('p', 2), ('H', 1), ('e', 1), ('o', 1), (' ', 1), ('A', 1), ('i', 1), ('a', 1)] [('l', 2), ('p', 2)] | cs |
element()
실제 이 부분은 Counter()생성된 딕셔너리를 각 맴버들로 만들어 반환하는 것입니다. 그럼 다음 예제를 한번 살펴보도록 하겠습니다.
from collections import Counter value = "Hello Appia" countValue = Counter(value) print(list(countValue.elements())) | cs |
위의 예제를 실행하면 다음과 같은 결과가 나옵니다.
['A', 'A', 'A', 'C', 'C', 'D'] | cs |
예전에는 무작위로 출력이 되었지만, 몇 버전 부터인지 작동으로 Sorted()로 되서 출력하는 것 같습니다.
이외에도 많은 update/sutract등이 있으나 잘 사용하지도 않고, 덧셈/뺄셈 하는 경우가 적어서 과감하게 누락해버리겠습니다.
이번 포스팅에서는 collection module에서 Counter에 대해서 살펴봤습니다. 이 부분을 통해서 문자열의 알파벳 갯수를 읽어올 수 있습니다.
혹 도움이 되셨다면, 공감 버튼 꾸욱 한번 부탁드립니다.
'Python > Python 기본' 카테고리의 다른 글
파이썬[Python] namedtuple - collections 모듈 (0) | 2020.04.02 |
---|---|
파이썬[Python] PyAutogui 설치, 사용법(매크로/Macro 제작에 사용됨) (0) | 2020.03.23 |
파이썬[Python] 012 클래스(Class) 및 상속 (0) | 2019.12.27 |
파이썬[Python] 011 예외처리(Exception) (0) | 2019.12.27 |
파이썬[Python] 010 파일 입출력 (0) | 2019.12.26 |