Sitemap

[Python] Data Structure — Collections

2 min readAug 2, 2018

--

본 포스팅은 edwith BoostCourse에서 ‘머신러닝을 위한 파이썬’ 강의를 듣고 한 포스팅입니다.

파이썬 코드에서 제공해주고 있는 자료구조에 대한 기본적인 모듈들을 파이썬에서는 Collection에서 다 포함을 하고 있다.

  • from collections import deque
  • from collections import Counter
  • from collections import OrderedDict
  • from collections import defaultdict
  • from collections import namedtuple
  1. deque

deque는 스택과 큐를 지원하는 모듈이다. List에 비해서 효율적인 자료 저장 방식을 지원한다. 속도면에서 확실히 빠르다. 효율적 메모리 구조로 처리 속도가 향상 되었다.

deque_list.appendleft(10)
deque_list.rotate(2)
reversed(deque_list)
deque_list.extend([5,6,7])
deque_list.extendleft([5,6,7])

위는 deque 모듈에서 지원해주는 함수들이다.

2. OrderedDict

Dict와는 다르게 데이터를 입력한 순서대로 Dict를 반환한다. Dict 타입은 데이터를 저장한 순서대로 저장하지 않기 때문에 순서대로 출력하지 않는다. OrderedDict를 사용하면 순서대로 저장하여 출력한다. value 혹은 key값으로 정렬할 때 Dict 보다는 OrderedDict를 쓰는게 좋다.

3. DefaultDict

Dict 타입에 기본 값을 지정해준다. 아무것도 없는 신규값을 생성시 사용하는 방법이다.

d = defaultdict(lambda: 0) #Default 값을 0으로 설정함

초기값이 없이 뭔가를 사용하게 될 때, DefaultDict를 사용하면 좋다.

4. Counter

Counter는 시퀀스형 자료형에 있는 element 갯수를 세서 dict 형태로 반환한다.

c = Counter()
c = Counter('gallahad')
print(c)

각 키마다 몇개가 있는지 세주고, 정렬까지 한다. 위 코드의 결과는 다음과 같다.

Counter({'a': 3, 'l':2, 'g':1, 'd':1, 'h':1})

--

--

No responses yet