Programming/Python

[Python] 사전에서 값을 기준으로 topK를 추출하는 방법

쌍쌍바나나 2018. 10. 20. 12:26
반응형

Python 사전(Dictionary)에서 값을 기준으로 topK를 추출하는 방법

python에서 dictionary를 갖고 있을때 (key, value)에서 value를 기반으로 topK를 뽑아내는 방법을 제시한다.
사전에서 값을 기준으로 정렬을 한 뒤에, [:N]을 이용해서 값을 추출할 수 있지만,
간단하게 한줄로 끝낼 수 있다. 기존 파이썬 패키지에 있는 heapq를 이용하면 된다.

heapq는 Heap queue algorithm으로 priority queue 알고리즘을 이용해서 값을 찾아낸다.
heaps은 binary tree를 이용하기 때문에 O(nlogn)

더 자세한 내용을 및 이론을 알고 싶으면

https://docs.python.org/2/library/heapq.html에서 8.4.3 Theory를 확인하면 좋다.

소스코드

반응형