[공식문서] https://docs.python.org/3/library/collections.html
from collections import Counter
컨테이너에 동일한 자료가 몇개인지 파익하여 dict 형태처럼 반환되는 객체 (*요소 개수가 많은 순서대로 출력)
리스트(list)
lst = ['aa', 'cc', 'dd', 'aa', 'bb', 'ee']
Counter(lst) # Counter({'aa': 2, 'cc': 1, 'dd': 1, 'bb': 1, 'ee': 1})
딕셔너리(dictionary)
collections.Counter({'가': 3, '나': 2, '다': 4})) # Counter({'다': 4, '가': 3, '나': 2})
문자열(string)
container = Counter()
container.update("aabcdeffgg")
container # Counter({'a': 2, 'f': 2, 'g': 2, 'b': 1, 'c': 1, 'd': 1, 'e': 1})
값=개수 형태로 입력하여 리스트 반환
counts = Counter(a=2, b=3, c=2)
Counter(counts) # Counter({'b': 3, 'a': 2, 'c': 2}) * 개수가 많은 것부터 반환
sorted(counts.elements()) # ['a', 'a', 'b', 'b', 'b', 'c', 'c']
update(): Counter의 값 갱신, 입력값에 문자열 형태도 가능
## 문자열 입력
counter = collections.Counter()
counter # Counter()
counter.update("abcdefg")
counter # Counter({'f': 1, 'e': 1, 'b': 1, 'g': 1, 'c': 1, 'a': 1, 'd': 1})
## 딕셔너리 입력
counter.update({'f':3, 'e':2})
counter # Counter({'f': 4, 'e': 3, 'b': 1, 'g': 1, 'c': 1, 'a': 1, 'd': 1})
elements(): 입력된 값의 요소에 해당하는 무작위 반하며 요소 수가 1보다 작을 경우 출력하지 않음, 대소문자 구별
counters = Counter("Hello Python")
list(counters.elements()) # ['H', 'e', 'l', 'l', 'o', 'o', ' ', 'P', 'y', 't', 'h', 'n']
sorted(counters.elements()) # [' ', 'H', 'P', 'e', 'h', 'l', 'l', 'n', 'o', 'o', 't', 'y']
most_common(n): 빈도수가 높은 순으로 상위 n개 튜플 형태로 반환, n이 없을 시 전체 반환
counters = Counter('apple, orange, grape')
counters.most_common() # [('a', 3), ('p', 3), ('e', 3), (',', 2), (' ', 2), ('r', 2), ('g', 2), ('l', 1), ('o', 1), ('n', 1)]
counters.most_common(3) # [('a', 3), ('p', 3), ('e', 3)]
c1.substract(c2): 차집합과 비슷하게 c1에서 c2 요소를 뺌, 없는 경우 -1로 반환
c1 = Counter('hello python')
c2 = Counter('i love python')
c1.subtract(c2)
c1 # Counter({'h': 1, 'l': 1, 'e': 0, 'o': 0, 'p': 0, 'y': 0, 't': 0, 'n': 0, ' ': -1, 'i': -1, 'v': -1})
c1 = collections.Counter(['a', 'b', 'c', 'b', 'd', 'a'])
c2 = collections.Counter('aaeroplane')
c1 # Counter({'b': 2, 'a': 2, 'd': 1, 'c': 1})
c2 # Counter({'a': 3, 'e': 2, 'n': 1, 'r': 1, 'o': 1, 'p': 1, 'l': 1})
덧셈(+)
c1 + c2
# Counter({'a': 5, 'b': 2, 'e': 2, 'n': 1, 'l': 1, 'd': 1, 'r': 1, 'o': 1, 'p': 1, 'c': 1})
뺄셈(-)
c1 - c2 # Counter({'b': 2, 'c': 1, 'd': 1}
교집합(&)
c1 & c2 # Counter({'a': 2})
합집합(|)
c1 | c2
# Counter({'a': 3, 'b': 2, 'e': 2, 'c': 1, 'd': 1, 'r': 1, 'o': 1, 'p': 1, 'l': 1, 'n': 1})
[PYTHON] 파이썬 collections 모듈(3) deque (0) | 2021.10.30 |
---|---|
[PYTHON] 파이썬 collections 모듈(1) defaultdict (0) | 2021.10.30 |
[DJANGO] 파이썬의 list 자바스크립트에서 array로 받기 (0) | 2021.08.12 |
[PYTHON] pickle(.pkl) 데이터 저장 및 불러오기 (0) | 2021.07.16 |
[PYTHON] smtplib 이용한 간단한 Gmail 발송 (0) | 2021.06.28 |
댓글 영역