1.在進行機器學習的時候,學習KNN算法裏面涉及到一個優先隊列
優先隊列,是數據結構裏面,你需要學到堆的時候,纔會涉及到的概念,只是最近忙於做其他事情,數據結構還沒更新,我這裏先介紹怎麼使用python自帶的優先隊列:
1.1 如果你的參數僅僅涉及到數值時
實驗結果:
1.2 如果你需要排序的不是單存的對象時,還需要某些描述時,比如一個Model
import queue
class Model(object):
def __init__(self, key, value):
self.key = key
self.value = value
def __lt__(self, other):
return self.key < other.key
def __str__(self):
return '({0},{1})'.format(self.key,self.value)
q = queue.PriorityQueue()
q.put(Model(3,[1,2,3]))
q.put(Model(2,"p1"))
q.put(Model(1,"p1"))
q.put(Model(0,"p1"))
while q:
print(q.get().__str__())
pass