最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 工具類(lèi)之Queue組件詳解用法

 更新時(shí)間:2021年10月28日 08:47:56   作者:劍客阿良_ALiang  
隊(duì)列(queue)是一種先進(jìn)先出的(First In First Out)的線(xiàn)性表,簡(jiǎn)稱(chēng)FIFO。隊(duì)列允許在一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。允許插入的一端為隊(duì)尾,允許刪除的一端為隊(duì)頭。隊(duì)列不允許在中間部位進(jìn)行操作

簡(jiǎn)述

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

環(huán)境

python: 3.6.13

單向隊(duì)列

初始化單向隊(duì)列

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

可以使用full()方法判斷隊(duì)列是否已經(jīng)塞滿(mǎn)數(shù)據(jù),可以通過(guò)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ì)怎么樣呢?

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

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

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

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

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

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

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

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

可以看出,書(shū)序是按照我們?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ù)類(lèi)型是必不可少的?;顚W(xué)活用吧。哎,今年ti10,中國(guó)隊(duì)又無(wú)緣冠軍,明年加油吧。

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

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

相關(guān)文章

  • 利用python3如何給數(shù)據(jù)添加高斯噪聲

    利用python3如何給數(shù)據(jù)添加高斯噪聲

    高斯噪聲既是符合高斯正態(tài)分布的誤差,一些情況下我們需要向標(biāo)準(zhǔn)數(shù)據(jù)中加入合適的高斯噪聲會(huì)讓數(shù)據(jù)變得有一定誤差而具有實(shí)驗(yàn)價(jià)值,下面這篇文章主要給大家介紹了關(guān)于利用python3如何給數(shù)據(jù)添加高斯噪聲的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Python學(xué)習(xí)之pip包管理工具的使用

    Python學(xué)習(xí)之pip包管理工具的使用

    學(xué)習(xí)?Python?的過(guò)程中,經(jīng)常會(huì)使用?pip?命令去安裝第三方模塊。pip?是?Python?默認(rèn)集成的包管理工具,而其本質(zhì)就是?Python?標(biāo)準(zhǔn)庫(kù)中的一個(gè)包,只是比較特殊一些。本文就來(lái)為你你全面揭示一下?pip?包管理工具的使用
    2022-08-08
  • Numpy數(shù)組的切片索引操作

    Numpy數(shù)組的切片索引操作

    本文主要介紹了Numpy數(shù)組的切片索引操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 使用Python實(shí)現(xiàn)將list中的每一項(xiàng)的首字母大寫(xiě)

    使用Python實(shí)現(xiàn)將list中的每一項(xiàng)的首字母大寫(xiě)

    今天小編就為大家分享一篇使用Python實(shí)現(xiàn)將list中的每一項(xiàng)的首字母大寫(xiě),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Python中3種內(nèi)建數(shù)據(jù)結(jié)構(gòu):列表、元組和字典

    Python中3種內(nèi)建數(shù)據(jù)結(jié)構(gòu):列表、元組和字典

    這篇文章主要介紹了Python中3種內(nèi)建數(shù)據(jù)結(jié)構(gòu):列表、元組和字典,需要的朋友可以參考下
    2014-11-11
  • Python OpenCV實(shí)現(xiàn)圖像模板匹配詳解

    Python OpenCV實(shí)現(xiàn)圖像模板匹配詳解

    提供一個(gè)模板圖像,一個(gè)目標(biāo)圖像,且滿(mǎn)足模板圖像是目標(biāo)圖像的一部分,從目標(biāo)圖像中尋找特定的模板圖像的過(guò)程,即為模板匹配。本文將詳細(xì)講解如何利用Python OpenCV實(shí)現(xiàn)圖像模板匹配,需要的可以參考一下
    2022-04-04
  • 詳解Python中的條件判斷語(yǔ)句

    詳解Python中的條件判斷語(yǔ)句

    這篇文章主要介紹了Python中的條件判斷語(yǔ)句,是Python入門(mén)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • python如何創(chuàng)建TCP服務(wù)端和客戶(hù)端

    python如何創(chuàng)建TCP服務(wù)端和客戶(hù)端

    這篇文章主要為大家詳細(xì)介紹了python如何創(chuàng)建TCP服務(wù)端和客戶(hù)端,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • python 自動(dòng)軌跡繪制的實(shí)例代碼

    python 自動(dòng)軌跡繪制的實(shí)例代碼

    今天小編就為大家分享一篇python 自動(dòng)軌跡繪制的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • python+elasticsearch實(shí)現(xiàn)標(biāo)簽匹配計(jì)數(shù)操作

    python+elasticsearch實(shí)現(xiàn)標(biāo)簽匹配計(jì)數(shù)操作

    這篇文章主要介紹了python+elasticsearch實(shí)現(xiàn)標(biāo)簽匹配計(jì)數(shù)操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04

最新評(píng)論

碌曲县| 梓潼县| 米泉市| 吉木乃县| 广河县| 子洲县| 邹城市| 米易县| 神木县| 西青区| 盘锦市| 新安县| 通化市| 沭阳县| 黑龙江省| 黔西县| 吉木乃县| 铜山县| 灵璧县| 姜堰市| 土默特右旗| 彩票| 高雄县| 宜州市| 罗山县| 南投县| 东明县| 若尔盖县| 宜昌市| 临安市| 惠来县| 南安市| 永修县| 伊金霍洛旗| 福州市| 揭东县| 上高县| 景宁| 镇坪县| 昆山市| 诏安县|