1️⃣ heappush - 값 추가
heapq에는 최소힙이 구현되어 있기 때문에, heappush를 통해 값들을 삽입하면 해당 값들은 숫자가 가장 작은 순서대로 트리 구조로 값이 저장된다.
import heapq
heap = []
heapq.heappush(heap, 5)
heapq.heappush(heap, 1)
heapq.heappush(heap, 3)
heapq.heappush(heap, 0)
heapq.heappush(heap, 2)
print(heap)
# [0, 1, 2, 3, 5]
2️⃣ heappop - 값 삭제
우선순위가 높은 최소값이 삭제된다.
heapq.heappop(heap)
3️⃣ 값을 삭제하지 않고 최소값에 접근하기
heap[0]
4️⃣ heapify - 리스트를 힙으로 바꾸기
list_to_heap = [4, 7, 1, 2, 0]
heapq.heapify(list_to_heap)
print(list_to_heap)
# [0,1, 2, 4, 7]
5️⃣ nlargest, nsmallest - 힙의 n개의 가장 큰 리스트, n개의 가장 작은 리스트
각각 우선순위 큐에 저장된 원소들 중 n개의 가장 큰 리스트와 n개의 가장 작은 리스트를 반환한다.
# heap에서 가장 큰 3개의 원소가 담긴 리스트
heapq.nlargest(n=3, iterable=heap)
# heap에서 가장 작은 3개의 원소가 담긴 리스트
heapq.nsmallest(n=3, iterable=heap)
'뚝딱뚝딱 > Python' 카테고리의 다른 글
[Python] dictionary에 list 추가하기 (0) | 2023.02.14 |
---|---|
[Python] 출력 옵션 print(sep="", end="") (0) | 2023.01.30 |
Python 정렬 라이브러리 (0) | 2023.01.16 |
[Flask][Python] 추천 기능 구현하기 Pandas/head()/tail()/dataframe/.isin/.loc (0) | 2022.02.18 |
[Python] requirements.txt / 사용한 패키지 목록 만들기 (0) | 2022.02.14 |