在Python中,栈有两种实现方式:
- 一种是list(),即stack = []
- 另一种是deque()
list()实现是建立在连续内存块的基础上的,列表中的元素彼此相邻,访问元素时速度很快,而入栈即进行append()操作的时候需要花费更多时间。
deque()实现是建立在双向链表中的,每个元素都存储在自己的存储块中,并具有对下一个元素的引用。访问元素要比列表慢,但是进行push和pop操作时比较快,所以优先推荐。
如果程序具有线程
限制自己仅使用.append()和.pop(),那么将是线程安全的
线程安全的堆栈API queue.LifoQueue