Python隊列的定義與使用方法示例
本文實例講述了Python隊列的定義與使用方法。分享給大家供大家參考,具體如下:
雖然Python有自己的隊列模塊,我們只需要在使用時引入該模塊就行,但是為了更好的理解隊列,自己將隊列實現(xiàn)了一下。
隊列是一種數(shù)據(jù)結(jié)構(gòu),它的特點是先進先出,也就是說隊尾添加一個元素,隊頭移除一個元素,類似于商場排隊結(jié)賬,先來的人先接賬,后來的排在隊尾。在我們?nèi)粘I钪?,發(fā)送短信就會用到隊列。下面是Python實現(xiàn)隊列的代碼:
#!/usr/bin/python #coding=utf-8 class Queue(object) : def __init__(self, size) : self.size = size self.queue = [] def __str__(self) : return str(self.queue) #獲取隊列的當前長度 def getSize(self) : return len(self.quene) #入隊,如果隊列滿了返回-1或拋出異常,否則將元素插入隊列尾 def enqueue(self, items) : if self.isfull() : return -1 #raise Exception("Queue is full") self.queue.append(items) #出隊,如果隊列空了返回-1或拋出異常,否則返回隊列頭元素并將其從隊列中移除 def dequeue(self) : if self.isempty() : return -1 #raise Exception("Queue is empty") firstElement = self.queue[0] self.queue.remove(firstElement) return firstElement #判斷隊列滿 def isfull(self) : if len(self.queue) == self.size : return True return False #判斷隊列空 def isempty(self) : if len(self.queue) == 0 : return True return False
下面是該隊列類.py文件的測試代碼:
if __name__ == '__main__' : queueTest = Queue(10) for i in range(10) : queueTest.enqueue(i) print queueTest.isfull() print queueTest print queueTest.getSize() for i in range(5) : print queueTest.dequeue() print queueTest.isempty() print queueTest print queueTest.getSize()
測試結(jié)果:
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
Python基于sklearn庫的分類算法簡單應(yīng)用示例
這篇文章主要介紹了Python基于sklearn庫的分類算法,結(jié)合簡單實例形式分析了Python使用sklearn庫封裝樸素貝葉斯、K近鄰、邏輯回歸、SVM向量機等常見機器學(xué)習(xí)算法的分類調(diào)用相關(guān)操作技巧,需要的朋友可以參考下2018-07-07Django-xadmin+rule對象級權(quán)限的實現(xiàn)方式
今天小編就為大家分享一篇Django-xadmin+rule對象級權(quán)限的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03python進程池實現(xiàn)的多進程文件夾copy器完整示例
這篇文章主要介紹了python進程池實現(xiàn)的多進程文件夾copy器,結(jié)合完整實例形式分析了Python基于多進程與進程池的文件操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-11-11