본문 바로가기
프로그래밍 언어

파이썬(Python) 정리 - 7. deque, heapq 내장 함수 및 메소드

by hongdor 2020. 12. 13.
728x90

알고리즘 공부를 위해 python으로 PS(problem solving)을 하려고 한다. 

그래서 파이썬을 정리해 본다.

 

출처 : heapq — Heap queue algorithm — Python 3.9.1 documentation / collections — Container datatypes — Python 3.9.1 documentation

 

deque, heapq에 대해 알아보자

 

 

1. deque

 

deque([iterable[, maxlen]]) : iterable이 있을경우 깊은 복사. maxlen이 정해질경우 요소삽입시 반대편 요소 1개 제거

dq[index] : 처음 

dq[-1] : 끝

for x in dq : 사용가능

len(dq) : dq 요소 개수

reversed(d) : 순서를 뒤집는다.

 

dq.append(x) : 오른쪽에 더한다.

dq.appendleft(x) : 왼쪽에 더한다.

dq.clear() : 비운다.

dq.copy() : 얕은 복사의 copy를 반환

dq.count(x) : x의 개수를 반환

dq.extend(dq2) : 오른쪽에 dq2를 합친다.

dq.extendleft(dq2) 왼쪽에 dq2를 합친다.

dq.index(x[, start[, stop]]) : x의 위치를 반환. 범위설정 가능

dq.insert(index, x) : index 위치에 x 삽입 / 범위를 넘으면 indexError 발생 

dq.pop() : 오른쪽 값을 삭제 후 반환

dq.popleft() : 왼쪽 값을 삭제 후 반환

dq.remove(value) : 첫 value 값을 삭제 / 없으면 valueError 발생

dq.reverse() : 요소들의 순서를 뒤집는다.

dq.rotate(n=1) : d.appendleft(d.pop()) 와 같다. 오른쪽 끝값을 왼쪽 끝으로 보낸다.

 

 

2. heapq

 

heap[0] : 가장 작은 값

 

heapq.heappush(heap, item) : heap에 item을 넣는다.

heapq.heappop(heap) : 가장 작은것을 제거후 return / 비어있다면 indexError 발생 

heapq.heappushpop(heap, item) :  item을 push 하고 가장 작은값을 제거 후 return

heapq.heapreplace(heap, item) : 가장 작은것을 제거 및 return, 그리고 item을 push / 비어있다면 indexError

heapq.heapify(x) : x(list 등)를 heap로 변환 

heapq.nlargest(n, iterable, key=None) : 큰것 순서대로 n개를 iterable type으로 return. key는 str.lower같은것

heapq.nsmallest(n, iterable, key=None) : 작은것 순서대로 n개를 iterable type으로 return. key는 str.lower같은것

 

* 큰값을 조회하는 maxheap은 지원하지 않는다.

  그러므로 data에 음수를 붙여 최대값이 최소값이 되도록 조작한다..

728x90

댓글0