Python의 heapq 모듈은 힙 자료 구조를 구현하는 데 사용됩니다. 이 모듈은 우선순위 큐를 구현하는 데 유용하며, heapq 모듈의 함수들은 리스트를 인수로 받고 해당 리스트를 힙으로 변환합니다.
다음은 heapq 모듈에서 사용할 수 있는 일부 함수와 이 함수들을 사용하는 방법입니다.
1. heappush(heap, item)
heap에 item을 추가합니다.
import heapq
heap = []
heapq.heappush(heap, 4)
heapq.heappush(heap, 1)
heapq.heappush(heap, 7)
print(heap) # [1, 4, 7]
2. heappop(heap)
heap에서 최소값을 제거하고 반환합니다.
import heapq
heap = [1, 4, 7]
print(heapq.heappop(heap)) # 1
print(heap) # [4, 7]
출력:
3. heapify(x)
리스트 x를 힙으로 변환합니다.
import heapq
lst = [3, 1, 7, 4]
heapq.heapify(lst)
print(lst) # [1, 3, 7, 4]
4. heapreplace(heap, item)
heap에서 최소값을 제거하고 item을 추가합니다.
import heapq
heap = [1, 4, 7]
print(heapq.heapreplace(heap, 2)) # 1
print(heap) # [2, 4, 7]
5. nlargest(n, iterable, key=None)
iterable에서 n개의 가장 큰 값을 반환합니다.
import heapq
lst = [3, 1, 7, 4]
print(heapq.nlargest(2, lst)) # [7, 4]
6. nsmallest(n, iterable, key=None)
iterable에서 n개의 가장 작은 값을 반환합니다.
import heapq
lst = [3, 1, 7, 4]
print(heapq.nsmallest(2, lst)) # [1, 3]
힙은 주로 우선순위 큐를 구현하는 데 사용됩니다. 따라서 heapq 모듈은 많은 알고리즘에서 유용하게 사용됩니다. heapq 모듈의 함수를 사용하여 힙 자료 구조를 효율적으로 구현할 수 있습니다.
'라이브러리' 카테고리의 다른 글
파이썬(Python) json사용법 정리 (0) | 2023.03.03 |
---|---|
파이썬(Python) bisect 사용법 정리 (0) | 2023.03.03 |
파이썬(Python) csv 사용법 정리 (0) | 2023.03.02 |
파이썬(Python) memoryview 사용법 정리 (0) | 2023.03.02 |
파이썬(Python) random 사용법 정리 (0) | 2023.03.01 |