在Python中,棧有兩種實現方式:
- 一種是list(),即stack = []
- 另一種是deque()
list()實現是建立在連續內存塊的基礎上的,列表中的元素彼此相鄰,訪問元素時速度很快,而入棧即進行append()操作的時候需要花費更多時間。
deque()實現是建立在雙向鏈表中的,每個元素都存儲在自己的存儲塊中,並具有對下一個元素的引用。訪問元素要比列表慢,但是進行push和pop操作時比較快,所以優先推薦。
如果程序具有線程
限制自己僅使用.append()和.pop(),那麼將是線程安全的
線程安全的堆棧API queue.LifoQueue