Python 堆栈迭代,最佳实践

标签 python

python中迭代一个栈的具体方法是什么。像迭代列表一样使用 for 循环是最佳实践吗?

最佳答案

如果您的堆栈可能增长到很大比例,您绝对不应该使用 List 或自定义堆栈类。 Raymond Hettinger 已经为您完成了工作并编写了精彩的 collections.dequedeque 是一个类似列表的数据结构,支持从两端进行恒定时间追加和弹出。

>>> 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/

相关文章:

python - fatal error : Incompatible ssh peer (no acceptable kex algorithm)

python - 如何获取Google YouTube API方法列表?

python - "None"在我运行我的程序时不断出现

python - 函数调用中明显差异的解释

python - 如何按行对矩阵进行排序 - Python

python - Django 文件上传内容类型为 "application/octet-stream"

python - 在 Pandas 的密度图中显示平均线

python - sys.path.append 不支持 os.system 命令?

Python使用json加载解析具有两个json对象列表的文件

Python 3.5 - 表达式中的 bool 值