卜若的代碼筆記-python系列-基礎篇-第七章:優先隊列

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章