개요
2022.03.20 - [heapq] 최소 힙, 최대 힙 글에서 최소 힙을 제공하는 heapq 라이브러리를 살펴봤다.
위 글에서는 최솟값을 읽거나, 리스트를 heap으로 변경하는 방법을 확인했는데, heap에서 큰 값부터 n개 데이터 또는 작은 값부터 n개 데이터를 얻고 싶다.
방법을 적어둔다.
nlargest - 큰 값부터 n개 값 얻기
iterable에 의해 정의된 데이터에서 가장 큰 n개 요소를 반환한다.
heapq.nlargest(n, iterable, key=None)
예로 들어 0부터 10까지의 데이터에서 큰 값 세 개를 얻고 싶다면 다음과 같이 사용할 수 있다.
import heapq
n = 3
data = range(10)
heapq.nlargest(n, data)
nsmallest - 작은 값부터 n개 값 얻기
iterable에 의해 정의된 데이터에서 가장 작은 n개 요소를 반환한다.
heapq.nsmallest(n, iterable, key=None)
예로 들어 0부터 10까지의 데이터에서 작은 값 세 개를 얻고 싶다면 다음과 같이 사용할 수 있다.
import heapq
n = 3
data = range(10)
heapq.nsmallest(n, data)
참고 문서
https://docs.python.org/3/library/heapq.html