1. 程式人生 > >python-把列表當堆棧,隊列使用

python-把列表當堆棧,隊列使用

pytho 快速 href 返回 不同 mts ref 使用 bsp

列表方法使得列表可以很方便的做為一個堆棧來使用,堆棧作為特定的數據結構,最先進入的元素最後一個被釋放(後進先出)。用 append() 方法可以把一個元素添加到堆棧頂。用不指定索引的 pop() 方法可以把一個元素從堆棧頂釋放出來。例如:

>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]
你也可以把列表當做隊列使用,隊列作為特定的數據結構,最先進入的元素最先釋放(先進先出)。不過,列表這樣用效率不高。相對來說從列表末尾添加和彈出很快;在頭部插入和彈出很慢(因為,為了一個元素,要移動整個列表中的所有元素)。
要實現隊列,使用 collections.deque,它為在首尾兩端快速插入和刪除而設計。例如:
>>> from collections import deque
>>> queue = deque(["a", "b", "c"])
>>> queue.append("A")           
>>> queue.append("B")          
>>> queue.popleft()   
有個方法可以從列表中按給定的索引而不是值來刪除一個子項: del 語句。它不同於有返回值的 pop() 方法。語句 del 還可以從列表中刪除切片或清空整個列表。

python-把列表當堆棧,隊列使用