激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python 工具類之Queue組件詳解用法

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

2022-02-19 14:04劍客阿良_ALiang Python

隊列(queue)是一種先進先出的(First In First Out)的線性表,簡稱FIFO。隊列允許在一端進行插入操作,而在另一端進行刪除操作。允許插入的一端為隊尾,允許刪除的一端為隊頭。隊列不允許在中間部位進行操作

簡述

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

 

環(huán)境

python: 3.6.13

 

單向隊列

初始化單向隊列

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

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

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

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

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

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

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

現(xiàn)在隊列里面只有兩個數(shù),我們再塞入3個數(shù)看一下。

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

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

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

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

 

先進后出隊列

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

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

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

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

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

 

優(yōu)先級隊列

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

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

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

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

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

 

雙向隊列

雙向隊列,顧名思義就是可以從隊列兩端進行處理:deque。

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

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

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

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

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

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

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

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

取出隊首元素。

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

 

完整代碼

import queue

# 單向隊列
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())

# 先進后出隊列
q = queue.LifoQueue(5)
q.put(1)
q.put(2)
q.put(3)
print(q.get())

# 優(yōu)先級隊列
q = queue.PriorityQueue(5)
q.put((5, "電"))
q.put((2, "雨"))
q.put((4, "雷"))
q.put((1, "風(fēng)"))
while True:
  print(q.get())

# 雙向隊列
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)中,隊列數(shù)據(jù)類型是必不可少的。活學(xué)活用吧。哎,今年ti10,中國隊又無緣冠軍,明年加油吧。

如果本文對你有幫助,請點個贊支持一下吧。

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

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

原文鏈接:https://huyi-aliang.blog.csdn.net/article/details/120827420

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久国产一二三 | 中文字幕欧美专区 | 91精品影视 | 哪里可以看免费的av | 日本成人二区 | 午夜视频色 | 日日cao| 久久色播 | 87成人免费看片 | 亚洲国产高清视频 | 亚洲va久久久噜噜噜久牛牛影视 | 美国一级免费视频 | 久热久操 | 草莓视频在线导航 | aa国产视频一区二区 | 国产精品一区二区三区在线 | 久久96国产精品久久秘臀 | 国产精品久久在线观看 | 四季久久免费一区二区三区四区 | 男女亲热网站 | av噜噜在线 | 亚洲自拍第一 | 国产成人综合在线观看 | 国产一区二区精品免费 | 国产羞羞视频在线免费观看 | 久久久久久69 | 亚洲男人的天堂在线视频 | 国产成人精品免费视频大全办公室 | 欧美日本免费一区二区三区 | 免费看成人毛片 | 日日草日日干 | 成码无人av片在线观看网站 | 欧美aaaaa一级毛片在线 | 一级黄色免费 | 国产成人av免费 | 欧美成人鲁丝片在线观看 | 日本黄色免费观看视频 | 亚洲精品久久久久www | 色黄视频网站 | 国产午夜精品一区 | 亚洲一区在线视频观看 |