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

python中的deque雙向隊(duì)列詳解

 更新時(shí)間:2023年09月13日 10:17:41   作者:Yake1965  
這篇文章主要介紹了python中的deque雙向隊(duì)列詳解,相比 list 實(shí)現(xiàn)的隊(duì)列,deque 擁有更低的時(shí)間和空間復(fù)雜度,list 實(shí)現(xiàn)在出隊(duì)(pop)和插入(insert)時(shí)的空間復(fù)雜度大約為O(n),需要的朋友可以參考下

python deque(雙向)隊(duì)列

Python 標(biāo)準(zhǔn)庫(kù)中包含了四種隊(duì)列,分別是 queue.Queue / asyncio.Queue / multiprocessing.Queue / collections.deque

在這里插入圖片描述

相比 list 實(shí)現(xiàn)的隊(duì)列,deque 擁有更低的時(shí)間和空間復(fù)雜度。list 實(shí)現(xiàn)在出隊(duì)(pop)和插入(insert)時(shí)的空間復(fù)雜度大約為O(n),deque 在出隊(duì)(pop)和入隊(duì)(append)時(shí)的時(shí)間復(fù)雜度是O(1)。 所以 deque 更有優(yōu)越性,而且 deque 既可以表示隊(duì)列又可以表示棧。

in 操作符

q = collections.deque([1, 2, 3, 4])
print(5 in q)  # False
print(1 in q)  # True

rotate 旋轉(zhuǎn)

# 順時(shí)針
q = collections.deque([1, 2, 3, 4])
q.rotate(1)
print(q)  # [4, 1, 2, 3]
q.rotate(1)
print(q)  # [3, 4, 1, 2]
# 逆時(shí)針
q = collections.deque([1, 2, 3, 4])
q.rotate(-1)
print(q)  # [2, 3, 4, 1]
q.rotate(-1)
print(q)  # [3, 4, 1, 2]

copy

 d.append(1)
 d.append(2)
 deque([1, 2])
 d1 = d.copy()
 deque([1, 2])

extend

 d.clear()
 d.append(1)
 d.extend([3,4,5])
 deque([1, 3, 4, 5])

extendleft

 d.clear()
 d.append(1)
 d.extendleft([3,4,5])
deque([5, 4, 3, 1])

index

 d.extend(["a","b","c","d","e","f"])
deque(['a', 'b', 'c', 'd', 'e','f'])
 d.index("c",0,4) #指定查找的區(qū)間
 d.index("c",0,2)
error...
d.insert(位置,元素)  在指定位置插入元素
d.remove(元素)   刪除指定元素
d.reverse   隊(duì)列翻轉(zhuǎn) 

請(qǐng)定義一個(gè)隊(duì)列并實(shí)現(xiàn)函數(shù) max_value 得到隊(duì)列里的最大值,要求函數(shù)max_value、push_back 和 pop_front 的均攤時(shí)間復(fù)雜度都是O(1)。

若隊(duì)列為空,pop_front 和 max_value 需要返回 -1

輸入: [“MaxQueue”,“push_back”,“push_back”,“max_value”,“pop_front”,“max_value”] [[],[1],[2],[],[],[]] 輸出: [null,null,null,2,1,2]

既然時(shí)間復(fù)雜度是O(1)

from collections import deque
class MaxQueue:
    def __init__(self):
        self.d = deque()
    def max_value(self) -> int:
        return max(self.d) if self.d else -1
    def push_back(self, value: int) -> None:
        self.d.append(value)
    def pop_front(self) -> int:
        return self.d.popleft() if self.d else -1

到此這篇關(guān)于python中的deque雙向隊(duì)列詳解的文章就介紹到這了,更多相關(guān)deque雙向隊(duì)列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • tensorflow 重置/清除計(jì)算圖的實(shí)現(xiàn)

    tensorflow 重置/清除計(jì)算圖的實(shí)現(xiàn)

    今天小編就為大家分享一篇tensorflow 重置/清除計(jì)算圖的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python利用有道翻譯實(shí)現(xiàn)

    python利用有道翻譯實(shí)現(xiàn)"語(yǔ)言翻譯器"的功能實(shí)例

    小編就為大家分享一篇python利用有道翻譯實(shí)現(xiàn)"語(yǔ)言翻譯器"的功能實(shí)例。具有比較好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • python 爬取騰訊視頻評(píng)論的實(shí)現(xiàn)步驟

    python 爬取騰訊視頻評(píng)論的實(shí)現(xiàn)步驟

    這篇文章主要介紹了python 爬取騰訊視頻評(píng)論的實(shí)現(xiàn)步驟,幫助大家更好的理解和學(xué)習(xí)使用python爬蟲,感興趣的朋友可以了解下
    2021-02-02
  • Pytorch轉(zhuǎn)keras的有效方法,以FlowNet為例講解

    Pytorch轉(zhuǎn)keras的有效方法,以FlowNet為例講解

    這篇文章主要介紹了Pytorch轉(zhuǎn)keras的有效方法,以FlowNet為例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 用Python實(shí)現(xiàn)數(shù)據(jù)篩選與匹配實(shí)例

    用Python實(shí)現(xiàn)數(shù)據(jù)篩選與匹配實(shí)例

    大家好,本篇文章主要講的是用Python實(shí)現(xiàn)數(shù)據(jù)篩選與匹配實(shí)例,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • Python中的變量和數(shù)據(jù)類型詳情

    Python中的變量和數(shù)據(jù)類型詳情

    這篇文章主要介紹了Python中的變量和數(shù)據(jù)類型詳情,變量不需要聲明即可使用,向變量賦值即定義變量,python中的數(shù)據(jù)類型包括數(shù)值類型、列表、元組等內(nèi)容,下面文章的詳細(xì)介紹,需要的小伙伴可以參考一下
    2022-03-03
  • 將FileStorage對(duì)象高效轉(zhuǎn)換為NumPy數(shù)組的兩種實(shí)現(xiàn)方案

    將FileStorage對(duì)象高效轉(zhuǎn)換為NumPy數(shù)組的兩種實(shí)現(xiàn)方案

    在Web開發(fā)(如Flask應(yīng)用)中,處理用戶上傳的圖片文件時(shí),常會(huì)遇到FileStorage對(duì)象向numpy.ndarray的轉(zhuǎn)換需求,本文將提供兩種經(jīng)過(guò)驗(yàn)證的高效方法,并深入解析其技術(shù)細(xì)節(jié)與適用場(chǎng)景,需要的朋友可以參考下
    2025-03-03
  • Python web框架之tornado的使用

    Python web框架之tornado的使用

    tornado是一個(gè)用Python語(yǔ)言寫成的Web服務(wù)器兼Web應(yīng)用框架,本文主要介紹了Python web框架之tornado的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-05-05
  • Python實(shí)現(xiàn)手機(jī)號(hào)自動(dòng)判斷男女性別(實(shí)例解析)

    Python實(shí)現(xiàn)手機(jī)號(hào)自動(dòng)判斷男女性別(實(shí)例解析)

    這篇文章主要介紹了Python實(shí)現(xiàn)手機(jī)號(hào)自動(dòng)判斷男女性別,本文性別判斷主要依靠airtest中的自動(dòng)化測(cè)試實(shí)現(xiàn),通過(guò)實(shí)例代碼給大家講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 一文帶你了解Python中的延遲綁定

    一文帶你了解Python中的延遲綁定

    Python中的延遲綁定是指在嵌套函數(shù)中,內(nèi)部函數(shù)在被調(diào)用時(shí)才會(huì)綁定外部函數(shù)的變量,而不是在定義內(nèi)部函數(shù)時(shí)就綁定。本文將通過(guò)一些例子帶大家深入了解Python中的延遲綁定,感興趣的可以了解一下
    2023-05-05

最新評(píng)論