[英]Python queue like data structure
我正在處理一個偶爾接收新元素的列表。 添加了這些新元素后,我想對這些元素進行計算(准確地說,是估算KDE)。 我很快意識到,如果要使這個列表不受限制地增長,那么KDE函數的計算將花費很長時間,因此我認為使用Queue將是一個很好的數據結構。 但是,標准Python隊列( https://docs.python.org/2/library/queue.html )不允許訪問單獨的Queue元素,而不能將其“彈出”到隊列之外。 有沒有其他選擇?
換句話說:是否有一些Python庫可以讓我在不彈出隊列元素的情況下獲得它? (或者允許對隊列元素進行類似數組的索引編制?)
聽起來您可以通過使用雙端隊列來很好地利用它:
https://docs.python.org/2/library/collections.html#collections.deque
我不明白為什么不使用彈出機制就使用隊列。 如果您想在數組中進行密集增長,則可以使用1個數組和1個隊列。 首先是等待隊列 ,其次是處理數組 。
您可以對循環進行一些優化以加快循環速度。
例如你可能會改變
import xxx
for a in b_array:
xxx.do_something(a)
對此:
import xxx
ds = xxx.do_something #linking a function in memory speeds up foreach performance very much
for a in b_array:
ds(a)
我認為您的問題與隊列大小無關。 如果是這樣,您必須檢查您的早期代碼。
正如@RemcoGerlich所建議的那樣,最好的前進方式(我認為)是保持索引指針“記憶”下一個合適的寫入位置(以列表大小為模)。 這將允許使用numpy進行非常快速的實現,也將使我實現指定的目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.