알고리즘 공부를 위해 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에 음수를 붙여 최대값이 최소값이 되도록 조작한다..
'Language > Python' 카테고리의 다른 글
파이썬(Python) 정리 - 8. 유용한 표준 라이브러리 - itertools, math, bisect (0) | 2020.12.14 |
---|---|
파이썬(Python) 정리 - 6. String 문자열 메소드 (0) | 2020.12.13 |
파이썬(Python) 정리 - 5. 리스트, 셋, 딕셔너리 내장 함수 및 메소드 (0) | 2020.12.13 |
파이썬(Python) 정리 - 4. 얕은복사와 깊은 복사 (0) | 2020.12.12 |
파이썬(Python) 정리 - 3. 함수 (0) | 2020.12.12 |
댓글