人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

python 工具類之Queue組件詳解用法

發(fā)布日期:2021-12-18 08:50 | 文章來源:源碼之家

簡述

隊(duì)列一直都是工程化開發(fā)中經(jīng)常使用的數(shù)據(jù)類型,本篇文章主要介紹一下python queue的使用,會(huì)邊調(diào)試代碼,邊說明方法內(nèi)容。

環(huán)境

python: 3.6.13

單向隊(duì)列

初始化單向隊(duì)列

放置一些數(shù)據(jù)

可以使用full()方法判斷隊(duì)列是否已經(jīng)塞滿數(shù)據(jù),可以通過qsize()方法查看隊(duì)列內(nèi)元素?cái)?shù)量。

這時(shí)候我們從隊(duì)列取出數(shù)據(jù),看先取到的是什么。

現(xiàn)在隊(duì)列里面只有兩個(gè)數(shù),我們?cè)偃?個(gè)數(shù)看一下。

這個(gè)時(shí)候我們繼續(xù)塞入第六個(gè)數(shù)會(huì)怎么樣呢?

可以看到如果塞入超過隊(duì)列限定數(shù)量的元素,會(huì)阻塞住隊(duì)列。所以在一般的項(xiàng)目工程中,我們會(huì)分成兩個(gè)線程,一個(gè)消費(fèi)數(shù)據(jù),一個(gè)塞入隊(duì)列數(shù)據(jù)。按照業(yè)務(wù)需求看是否需要限定隊(duì)列長度。

先進(jìn)后出隊(duì)列

上面展示的是先進(jìn)先出(FIFO)的單項(xiàng)隊(duì)列,python的queue模塊也提供先進(jìn)后出(LIFO)的隊(duì)列: LifoQueue,類似java的棧類型。

塞入數(shù)據(jù)后看取出的是在隊(duì)列的什么位置。

可以看出從隊(duì)列取出的是隊(duì)尾數(shù)據(jù)。

優(yōu)先級(jí)隊(duì)列

按照自定的優(yōu)先級(jí)來對(duì)隊(duì)列數(shù)據(jù)自動(dòng)排序:PriorityQueue。

塞入數(shù)據(jù)后,全部取出,打印看一下順序是什么樣的。

可以看出,書序是按照我們?nèi)霐?shù)據(jù)的級(jí)別由小到大排序的。

雙向隊(duì)列

雙向隊(duì)列,顧名思義就是可以從隊(duì)列兩端進(jìn)行處理:deque。

初始化,并塞入3個(gè)數(shù)據(jù)。

從左側(cè),也就是最前端塞入一個(gè)元素。看下效果。

可以自定義塞入元素的位置。

取出隊(duì)尾的數(shù)據(jù)。

取出隊(duì)首元素。

完整代碼

import queue
 
# 單向隊(duì)列
q = queue.Queue(5)
print(q.maxsize)
q.put(1)
q.put(2)
q.put(3)
print(q.full())
print(q.qsize())
 
print(q.get())
q.put(4)
q.put(5)
q.put(6)
q.put(7)
print(q.full())
print(q.qsize())
print(q.get())
 
# 先進(jìn)后出隊(duì)列
q = queue.LifoQueue(5)
q.put(1)
q.put(2)
q.put(3)
print(q.get())
 
# 優(yōu)先級(jí)隊(duì)列
q = queue.PriorityQueue(5)
q.put((5, "電"))
q.put((2, "雨"))
q.put((4, "雷"))
q.put((1, "風(fēng)"))
while True:
 print(q.get())
 
# 雙向隊(duì)列
q = queue.deque()
q.append(1)
q.append(2)
q.append(3)
 
q.appendleft(4)
q.insert(2, 5)
 
print(q.pop())
print(q.popleft())

總結(jié)

在很多工程化架構(gòu)中,隊(duì)列數(shù)據(jù)類型是必不可少的?;顚W(xué)活用吧。哎,今年ti10,中國隊(duì)又無緣冠軍,明年加油吧。

如果本文對(duì)你有幫助,請(qǐng)點(diǎn)個(gè)贊支持一下吧。

到此這篇關(guān)于python 工具類之Queue組件詳解用法的文章就介紹到這了,更多相關(guān)python Queue組件內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部