counter
: 컨테이너에 동일한 값의 자료가 몇개인지를 파악
from collections import Counter
: 요소의 개수 파악
>>> lst = ['aa', 'cc', 'dd', 'aa', 'bb', 'ee']
>>> print(Counter(lst))
Counter({'aa': 2, 'cc': 1, 'dd': 1, 'bb': 1, 'ee': 1})
: value값이 큰 순서대로
>>> print(Counter({'가': 3, '나': 2, '다': 4}))
Counter({'다': 4, '가': 3, '나': 2})
>>> c = Counter(a=2, b=3, c=2)
>>> print(Counter(c))
Counter({'b': 3, 'a': 2, 'c': 2})
>>> print(sorted(c.elements()))
['a', 'a', 'b', 'b', 'b', 'c', 'c']
>>> container = Counter()
>>> container.update("aabcdeffgg")
>>> print(container)
Counter({'a': 2, 'f': 2, 'g': 2, 'b': 1, 'c': 1, 'd': 1, 'e': 1})
: 개수의 해당하는 값 추출
>>> c2 = 'apple, orange, grape'
>>> c2 = collections.Counter(c2)
>>> print(c2.most_common())
[('a', 3), ('p', 3), ('e', 3), (',', 2), (' ', 2), ('r', 2), ('g', 2), ('l', 1), ('o', 1), ('n', 1)]
>>> print(c2.most_common(3))
[('a', 3), ('p', 3), ('e', 3)]
deque
: 양방향에서 데이터를 처리할 수 있는 queue형 자료구조
from collections import deque
: 일반적인 append
>>> deq = deque(['a', 'b', 'c'])
>>> deq.append('d')
>>> print(deq)
deque(['a', 'b', 'c', 'd'])
: 앞에 추가
>>> deq.appendleft('h')
>>> print(deq)
deque(['h', 'a', 'b', 'c', 'd'])
: 문자열 리스트로 추가
>>> deq.extend('ef')
>>> deq
deque(['h', 'a', 'b', 'c', 'd', 'e', 'f'])
>>> deq = collections.deque(['a', 'b', 'c'])
>>> deq.extendleft('de')
>>> deq
deque(['e', 'd', 'a', 'b', 'c'])
: 반환과 삭제
>>> deq = deque(['a', 'b', 'c'])
>>> deq.pop()
'c'
>>> deq.popleft()
'a'
: 위치 바꾸기
>>> deq = collections.deque(['a', 'b', 'c', 'd', 'e'])
>>> deq.rotate(2)
>>> deq
deque(['d', 'e', 'a', 'b', 'c'])
>>> deq = collections.deque(['a', 'b', 'c', 'd', 'e'])
>>> deq.rotate(-2)
>>> deq
deque(['c', 'd', 'e', 'a', 'b'])