python 清空佇列 python實現 佇列

2021-10-25 19:15:16 字數 1562 閱讀 6631

佇列

佇列的乙個特性是:先進先出(first in first out, fifo),

python中,同樣可以使用列表來儲存佇列的資料。通過建立乙個佇列類,便可以方便的對佇列進行操作。主要有:

入隊(in()) 出隊(out()) 清空佇列(empty())  設定佇列大小(setsize()) 獲取隊尾位置(getend())等

python實現**示例

# -*- coding: utf-8 -*-

created on mon apr  1 15:41:12 2019

@author: mu

class pyqueue:                # 建立佇列

def __init__(self,size=20):

self.queue =   #

self.size = size # 佇列大小

self.end = -1    # 隊尾

# 設定佇列大小

def setsize(self,size):

self.size = size

# 入隊

def in(self,element):

if self.end

self.end +=1

else:

raise queueexception('pyqueuefull') # 隊滿,引發異常

# 出隊

def out(self):

if self.end != -1:

element = self.queue[0]

self.queue = self.queue[1:]

self.end -= 1

return element

else:

raise queueexception('pyqueueempty') # 隊空,丟擲異常

# 獲取隊尾位置

def getend(self):

return self.end

# 清空佇列

def empty(self):

self.queue =

self.end = -1

class queueexception(exception): #自定義異常類

def __init__(self,data):

self.data = data

def __str__(self):

return self.data

主程式if __name__ == '__main__':

queue = pyqueue()

for i in range(10) :            #入隊

queue.in(i)

print('隊尾位置:',queue.getend())

while queue.getend != -1:

print(queue.out())

queue.empty()           #清空佇列

for i in range(20):

print(queue.out())  #引發異常

題外記和棧類似,實現很簡易!

celery清空佇列

本人在使用python celery佇列時,有時候需要清空佇列,但是python celery似乎並沒有清空佇列的api 至少我沒找到 所以使用redis cli工具進行佇列清空 使用redis cli工具,命令如下,在終端直接輸入 redis cli n 15 ltrim transcode 0 ...

python模擬佇列 入出 清空佇列基本操作

佇列與棧的結構類似,但不同的是佇列的出隊操作是在隊首元素進行的刪除操作。基本原則是先進先出。用列表,列表的功能非常強大,既能模擬堆疊又能模擬佇列,出隊的時候 入隊的時候,直接在尾部加入 list如果對資料結構感興趣,可以檢視這篇博文 執念斬長河專欄資料結構 目錄 實驗效果 實驗 coding utf...

清空socket接收佇列

在socket建立時,linux的核心會為socket分配乙個傳送緩衝區和乙個接收緩衝區,實際上是乙個struct sk buff的佇列,當我們呼叫send sendto sendmsg及recv recvfrom recvmsg時,會傳送或接收佇列中的第乙個資料。現在我們只考慮接收的情況,如果甲一...