Python隊(duì)列Queue實(shí)現(xiàn)詳解
隊(duì)列是一種列表,不同的是隊(duì)列只能在隊(duì)尾插入元素,在隊(duì)首刪除元素。
隊(duì)列用于存儲按順序排列的數(shù)據(jù),先進(jìn)先出 隊(duì)列是一種先進(jìn)先出(First-In-First-Out,F(xiàn)IFO)的數(shù)據(jù)結(jié)構(gòu)。
隊(duì)列被用在很多地方,比如提交操作系統(tǒng)執(zhí)行的一系列進(jìn)程、打印任務(wù)池等
實(shí)現(xiàn)方式
一:自定義隊(duì)列類
class Queue:
def __init__(self):
self.items = []
def push(self, value): # 進(jìn)隊(duì)列
self.items.append(value)
def pop(self): # 出隊(duì)列
return self.items.pop(0)
if __name__ == '__main__':
q = Queue()
q.push(1)
q.push(2)
q.push(3)
print(q.pop())
print(q.pop())
print(q.pop())二:使用python內(nèi)置隊(duì)列庫
from queue import Queue # LILO隊(duì)列
q = Queue() # 創(chuàng)建隊(duì)列對象
q.put(1) # 在隊(duì)列尾部插入元素
q.put(2)
q.put(3)
print('隊(duì)列內(nèi)元素', q.queue) # 查看隊(duì)列中的所有元素
print(q.get()) # 返回并刪除隊(duì)列頭部元素
print('隊(duì)列內(nèi)元素', q.queue) # 查看隊(duì)列中的所有元素
"""輸出
隊(duì)列內(nèi)元素 deque([1, 2, 3])
1
隊(duì)列內(nèi)元素 deque([2, 3])
"""優(yōu)先隊(duì)列
from queue import PriorityQueue # 存儲數(shù)據(jù)時可設(shè)置優(yōu)先級的隊(duì)列 # 優(yōu)先級設(shè)置數(shù)越小等級越高 q = PriorityQueue(maxsize=0) # 寫入隊(duì)列,設(shè)置優(yōu)先級 q.put((9, 'a')) q.put((7, 'c')) q.put((1, 'd')) # 輸出隊(duì)例全部數(shù)據(jù) print(q.queue) # 取隊(duì)例數(shù)據(jù),可以看到,是按優(yōu)先級取的。 q.get() print(q.queue) """輸出 [(1, 'd'), (9, 'a'), (7, 'c')] [(7, 'c'), (9, 'a')] """
到此這篇關(guān)于Python隊(duì)列Queue實(shí)現(xiàn)詳解的文章就介紹到這了,更多相關(guān)Python隊(duì)列Queue內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ubuntu16.04升級Python3.5到Python3.7的方法步驟
這篇文章主要介紹了ubuntu16.04升級Python3.5到Python3.7的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
python 30行代碼實(shí)現(xiàn)螞蟻森林自動偷能量
這篇文章主要介紹了python 30行代碼實(shí)現(xiàn)螞蟻森林自動偷能量的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-02-02
Python+Appium實(shí)現(xiàn)自動化測試的使用步驟
這篇文章主要介紹了Python+Appium實(shí)現(xiàn)自動化測試的使用步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Flask框架運(yùn)用Ajax實(shí)現(xiàn)數(shù)據(jù)交互的示例代碼
使用Ajax技術(shù)網(wǎng)頁應(yīng)用能夠快速地將增量更新呈現(xiàn)在用戶界面上,而不需要重載刷新整個頁面,這使得程序能夠更快地回應(yīng)用戶的操作,本文將簡單介紹使用AJAX如何實(shí)現(xiàn)前后端數(shù)據(jù)通信2022-11-11
PyQt5 實(shí)現(xiàn)給無邊框widget窗口添加背景圖片
這篇文章主要介紹了PyQt5 實(shí)現(xiàn)給無邊框widget窗口添加背景圖片的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python?selenium?webdriver?基本使用代碼分享
這篇文章主要介紹了Python?selenium?webdriver?基本使用,本文僅僅簡單介紹了selenium的使用常用代碼分享,需要的朋友可以參考下2022-11-11
python打印當(dāng)前文件的絕對路徑并解決打印為空的問題
這篇文章主要介紹了python打印當(dāng)前文件的絕對路徑并解決打印為空的問題,文中補(bǔ)充介紹了python中對文件路徑的獲取方法,需要的朋友可以參考下2023-03-03

