【发布时间】:2016-07-31 01:14:11
【问题描述】:
在尝试在 Python 中重新创建队列和堆栈时,我无法理解双端队列在下面代码的 sn-p 中的工作原理。
堆栈示例 - 了解
stack = ["a", "b", "c"]
# push operation
stack.append("e")
print(stack)
# pop operation
stack.pop()
print(stack)
在推入和弹出时,“e”是后进先出 (LIFO)。我的问题是下面的例子。
队列示例 - 不理解
from collections import deque
dq = deque(['a','b','c'])
print(dq)
# push
dq.append('e')
print(dq)
# pop
dq.pop()
print(dq)
当推动和弹出时,“e”进入后进先出 (LIFO)。不应该是先进先出(FIFO)吗?
【问题讨论】:
-
您应该查看
deque文档。您可能正在寻找dq.popleft()(或.appendleft())。无论哪种情况,dequeue 中的“de”都代表“双端”。 -
为什么要有所不同?