python中迭代一个栈的具体方法是什么。像迭代列表一样使用 for 循环是最佳实践吗?
最佳答案
如果您的堆栈可能增长到很大比例,您绝对不应该使用 List
或自定义堆栈类。 Raymond Hettinger 已经为您完成了工作并编写了精彩的 collections.deque
。 deque
是一个类似列表的数据结构,支持从两端进行恒定时间追加和弹出。
>>> from collections import deque
>>>
>>> stack = deque()
>>> stack.append(1)
>>> stack.append(2)
>>> stack.append(3)
>>> print stack
deque([1,2,3])
然后适本地使用 deque.pop()
和 deque.popleft()
您可以分别实现 FILO 和 FIFO。如果您想要 FIFO 或 for item in reversed(stack)
FILO,您还可以使用 for item in stack
对其进行迭代,这将生成内存高效的反向迭代器。
关于Python 堆栈迭代,最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8060397/