python隊列Queue的使用問題

最近項目需求計算每5幀的平滑數據速度,想到了用隊列,5個位置的隊列,新來的數擠掉第一個數,隊頭與隊尾運算即可,很久沒用python,遇到了基礎性的問題

使用其他語言,習慣從隊列裏直接取數 

q = Queue.queue()

q.add(x)

x = q(4)-q(0) 

q.delet(q(0))

類似這種使用隊尾減隊頭,再刪掉隊頭的方法在python下使用下會報錯

AttributeError:Queue instance has no_call__method

網上看了很多資料結果都沒有說到關鍵,修改函數後也沒解決問題,多次嘗試後發現在python中使用入隊用put加到隊尾,出隊使用get從隊頭拿出這個數。不需要再刪除,修改完整個代碼後,再次驗證了python的便捷性,它考慮的更方便,反而是編程習慣讓我想多了

import Queue


x=1
q_x = Queue.Queue(5)
q_time = Queue.Queue(5)

while(1)
    
    q_x.put(x)
    q_time.put(time.time())
    
    if q_time.full() == 1
        det_time = time.time() - q_time.get()
        v = (x- q_x.get()) / det_time
        print(v)
    x = x + 1

 

 

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