파이썬 유용한 모듈 - collections

Dreambuilder·2021년 4월 17일
0

파이썬

목록 보기
4/7

counter

: 컨테이너에 동일한 값의 자료가 몇개인지를 파악

from collections import Counter

1. 리스트

: 요소의 개수 파악

>>> lst = ['aa', 'cc', 'dd', 'aa', 'bb', 'ee']
>>> print(Counter(lst))
Counter({'aa': 2, 'cc': 1, 'dd': 1, 'bb': 1, 'ee': 1})

2. 딕셔너리

: value값이 큰 순서대로

>>> print(Counter({'가': 3, '나': 2, '다': 4}))
Counter({'다': 4, '가': 3, '나': 2})

3. 값 = 개수 형태

>>> 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']

4. 문자열

>>> container = Counter()
>>> container.update("aabcdeffgg")
>>> print(container)
Counter({'a': 2, 'f': 2, 'g': 2, 'b': 1, 'c': 1, 'd': 1, 'e': 1})

5. most_common()

: 개수의 해당하는 값 추출

>>> 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

1. append(x)

: 일반적인 append

>>> deq = deque(['a', 'b', 'c'])
>>> deq.append('d')
>>> print(deq)
deque(['a', 'b', 'c', 'd'])

2. appendleft(x)

: 앞에 추가

>>> deq.appendleft('h')
>>> print(deq)
deque(['h', 'a', 'b', 'c', 'd'])

3. extend(x) / extendleft(x)

: 문자열 리스트로 추가

>>> 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'])

4. pop() / popleft()

: 반환과 삭제

>>> deq = deque(['a', 'b', 'c'])
>>> deq.pop()
'c'
>>> deq.popleft()
'a'

5. rotate(n)

: 위치 바꾸기

>>> 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'])
profile
상상이 실현되는 곳

0개의 댓글