91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Python實現一個堆棧結構

發布時間:2020-08-24 14:52:17 來源:億速云 閱讀:227 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關怎么使用Python實現一個堆棧結構,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

什么是堆棧?

堆棧是一個數據結構,其存儲在一個后進/先出的方式的項目。這通常被稱為LIFO。這與隊列形成對比,隊列以先入/先出(FIFO)方式存儲項目。

使用list創建一個Python堆棧

list您可能經常在程序中使用的內置結構可用作堆棧。相反的.push(),你可以使用.append()新的元素添加到您的堆棧的頂部,同時.pop()除去了LIFO順序的元素:

>>> myStack = []
>>> myStack.append('a')
>>> myStack.append('b')
>>> myStack.append('c')
>>> myStack
['a', 'b', 'c']
>>> myStack.pop()
'c'
>>> myStack.pop()
'b'
>>> myStack.pop()
'a'
>>> myStack.pop()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
IndexError: pop from empty list

你可以在最后的命令中看到,如果你調用空堆棧,list它將引發一個。IndexError.pop()

list有熟悉的優點。你知道它是如何工作的,并且可能已經在你的程序中使用它了。

不幸的是,list與其他數據結構相比,您會看到一些缺點。最大的問題是隨著它的發展,它會遇到速度問題。list存儲a 中的項目的目的是提供對中的隨機元素的快速訪問list。在較高級別,這意味著項目在內存中彼此相鄰存儲。

如果你的堆棧比當前擁有它的內存塊大,那么Python需要做一些內存分配。這可能導致一些.append()呼叫比其他呼叫花費更長的時間。

還有一個不太嚴重的問題。如果您使用.insert()在末尾以外的位置向堆棧添加元素,則可能需要更長時間。但是,這通常不是你要對堆棧做的事情。

下一個數據結構將幫助您解決您看到的重新分配問題list。

使用collections.deque創建一個Python堆棧

該collections模塊包含deque,這對于創建Python堆棧很有用。deque發音為“deck”,代表“雙端隊列”。

您可以使用同樣的方法deque,你上面看到的list,.append()和.pop():

>>> from collections import deque
>>> myStack = deque()
>>> myStack.append('a')
>>> myStack.append('b')
>>> myStack.append('c')
>>> myStack
deque(['a', 'b', 'c'])
>>> myStack.pop()
'c'
>>> myStack.pop()
'b'
>>> myStack.pop()
'a'
>>> myStack.pop()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
IndexError: pop from an empty deque

這看起來幾乎與list上面的例子相同。此時,您可能想知道為什么Python核心開發人員會創建兩個看起來相同的數據結構。

看完上述內容,你們對怎么使用Python實現一個堆棧結構有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尼勒克县| 内黄县| 罗山县| 孝感市| 黑水县| 固镇县| 邯郸县| 兴义市| 博罗县| 克拉玛依市| 井冈山市| 房山区| 万盛区| 交口县| 崇仁县| 新源县| 阿瓦提县| 大余县| 义马市| 平远县| 巴东县| 湖北省| 颍上县| 东至县| 普兰店市| 大石桥市| 洮南市| 黎川县| 和田县| 华池县| 保靖县| 阳原县| 德钦县| 金坛市| 甘德县| 绥宁县| 疏勒县| 孝感市| 康马县| 财经| 新绛县|