default 는 최소힙.v[0]
은 항상 최솟값(최댓값)을 유지하지만 나머지 index 들은 순서를 유지할 거라는 보장이 없다.
import heapq
heap = []
# 이미 원소가 들어있는 리스트이면,
v = [4,1,2]
heapq.heapify(v)
heapq.heappush(heap, 4)
heapq.heappush(heap, 1)
# (우선순위, 원소) 의 형식으로 추가도 가능하다.
heap2 = []
heapq.heappush(heap2, (1, 4))
print(heapq.heappop(heap)) # 가장 작은 원소를 삭제 후에 그 값을 return 한다.
print(heap[0]) - 가장 작은 값/ 큰 값만 얻을 수 있다.
heappushpop(heap,item)
힙에 item을 푸시한 다음, heap에서 가장 작은 항목을 pop 하고 반환한다. heappush와 heappop을 별도로 호출하는 것보다 더 효율적.
nlargest(n, iterable, key = None)
iterable 에 의해 정의된 데이터 집합에서 n개의 가장 큰 요소로 구성된 리스트를 반환.
iterable 에 의해 정의된 데이터 집합에서 n개의 가장 작은 요소로 구성된 리스트를 반환.