<p>如果您想实现接近java版本的东西,可以通过导入numpy来使用numpy数组。Numpy数组是类似的,因为它们和java一样是不可变的对象。然后可以在构造函数中编写:</p>
<pre class="lang-py prettyprint-override"><code> _stack = np.zeros(MAX_NUMBER)
</code></pre>
<p>否则,您可以使用python本身的可变列表对象,在本例中,列表实际上已经是一个堆栈,正如您在<a href="https://docs.python.org/2/tutorial/datastructures.html" rel="nofollow noreferrer">data structures</a>的python文档中看到的那样:</p>
<blockquote>
<p>The list methods make it very easy to use a list as a stack, where the last element added is the first element retrieved (“last-in, first-out”). To add an item to the top of the stack, use append(). To retrieve an item from the top of the stack, use pop() without an explicit index. For example:</p>
</blockquote>
<pre class="lang-py prettyprint-override"><code> >>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]
</code></pre>
<p>但是,第一个版本的性能更高,因为每次更改可变的python对象时都必须复制它们,而不可变的对象只是创建的,没有名称引用它的旧对象被垃圾收集。你知道吗</p>