1. 程式人生 > >使用heapq標準庫計算訪問次數最多的query

使用heapq標準庫計算訪問次數最多的query

場景:

在日誌檔案中記錄著每次訪問的query,現在需要找到最熱門的10個query

利用heapq實現

我們首先定義資料結構

class Query(object):
     def __init__(self,term,count):
             self.term=term
             self.count=count
     def __cmp__(self,obj):
            return cmp(self.count,obj.count)
     def __str__(self):
            return '%s:%d' %(self.term,self.count)
     __repr__ = __str__

現在我們對日誌檔案根據term進行統計,假設已經得到一個列表 termlist
heapq.heapify(termlist)
#求最大的10個
heapq.nlargest(10,termlist)