欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

簡述

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

環(huán)境

python: 3.6.13

單向隊列

初始化單向隊列

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

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

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

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

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

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

先進(jìn)后出隊列

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

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

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

優(yōu)先級隊列

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

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

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

雙向隊列

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

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

從左側(cè),也就是最前端塞入一個元素??聪滦Ч?。

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

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

取出隊首元素。

完整代碼

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())
 
# 先進(jìn)后出隊列
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ù)類型是必不可少的?;顚W(xué)活用吧。哎,今年ti10,中國隊又無緣冠軍,明年加油吧。

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

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

相關(guān)文章

  • python webp圖片格式轉(zhuǎn)化的方法

    python webp圖片格式轉(zhuǎn)化的方法

    這篇文章主要為大家詳細(xì)介紹了python webp圖片格式轉(zhuǎn)化的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • django 修改server端口號的方法

    django 修改server端口號的方法

    今天小編就為大家分享一篇django 修改server端口號的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python中的反射知識點總結(jié)

    Python中的反射知識點總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于Python中的反射知識點總結(jié)內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-11-11
  • Python中List.index()方法的使用教程

    Python中List.index()方法的使用教程

    這篇文章主要介紹了Python中List.index()方法的使用教程,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Django框架視圖層URL映射與反向解析實例分析

    Django框架視圖層URL映射與反向解析實例分析

    這篇文章主要介紹了Django框架視圖層URL映射與反向解析,結(jié)合實例形式分析了Django框架普通url映射、命名URL參數(shù)映射、分布式URL映射、反向解析等相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • python 創(chuàng)建彈出式菜單的實現(xiàn)代碼

    python 創(chuàng)建彈出式菜單的實現(xiàn)代碼

    這篇文章主要介紹了python 創(chuàng)建彈出式菜單的實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Python 如何訪問外圍作用域中的變量

    Python 如何訪問外圍作用域中的變量

    這篇文章主要介紹了Python 如何訪問外圍作用域中的變量的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Python中的類型提示(Type Hints)總結(jié)

    Python中的類型提示(Type Hints)總結(jié)

    Python3.5 版本引入了類型提示(Type Hints),它允許開發(fā)者在代碼中顯式地聲明變量、函數(shù)、方法等的類型信息,下面小編就來帶大家一起看看Python類型提示的初步使用吧
    2023-05-05
  • Python3爬蟲中識別圖形驗證碼的實例講解

    Python3爬蟲中識別圖形驗證碼的實例講解

    在本篇內(nèi)容里小編給大家分享的是關(guān)于Python3爬蟲中識別圖形驗證碼的實例講解內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-07-07
  • 詳解python方法之綁定方法與非綁定方法

    詳解python方法之綁定方法與非綁定方法

    這篇文章主要介紹了python方法之綁定方法與非綁定方法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08

最新評論