Python

[Python] heapq - 크거나 작은 n개 데이터 추출

비번변경 2023. 7. 24. 14:08

개요

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