现在,Python 中给定的堆栈实现为空,执行撤消操作不会对堆栈产生任何影响
堆栈编程的实际用途
存储数据点以执行某个事件的过程。还有什么比游戏更好的例子呢?让我们以一款格斗游戏为例,游戏中角色的移动是由多个按键输入引起的。这些输入键的值可以以堆栈的形式存储。
正如我们之前讨论过 电报粉 的,Python 中的堆栈也可以用来执行撤销操作。撤销操作使用后堆栈和前堆栈,这些操作可以被推送到后堆栈和前堆栈中,并在其不再有用时被移除。
Web 浏览器中的后退按钮也使用了 Python 中堆栈的概念。想象一下,您访问了网页 1,然后是网页 2,然后是网页 3,依此类推。如果您点击浏览器上的后退按钮,您将按照上述顺序的反顺序进行操作。因此,浏览器需要将网页信息存储在堆栈中,以便能够以相反的顺序访问这些页面。
了解 Python 中解决堆栈的方法。
在 Python 中实现堆栈的方法有很多,但我们只介绍一些基本方法,因为这些方法已经足够了。因此,我们将使用 Python 库中的数据结构,而不是自己编写包或使用第三方包。
Python 中堆栈的实现如下:
- 列表
- Collections.deque
- 队列.LifoQueue
列表是 Python 最常用的数据结构之一,用于创建 Python 堆栈。这是因 push 和 pop 类似的函数也用于列表。append() 函数用于向列表添加新元素,而 pop() 函数则用于从列表中删除元素。
在 Python 中为堆栈实现进行编程时,您会注意到,如果您尝试在空堆栈上调用 pop() 函数,它将显示一个错误(这对于 Python 中的堆栈和队列来说很常见)。
然而,此时有必要提一下为什么 巴哈马商业指南 列表有其自身的优点(和某些缺点)被用作在 Python 中执行堆栈程序的主要数据结构。
首先,它提供了熟悉的优 准备一个前奏和结尾音乐一首 势,因为作为 Python 程序员,您已经在各种程序中使用过它。
另一方面,这会导致代码执行速度的损失。这种情况在一开始不会发生,但随着程序的快速增长,就会发生。这是因为在内存分配中,元素彼此相邻存储,这使得 Python 中的堆栈执行内存分配过程,从而导致调用 append() 函数比调用其他函数花费更长的时间。
如果您认为可以通过使用 insert() 函数来解决这个问题,那么您会失望的,因为使用这个函数会花费更长的时间。
借助 collections.deque 解决 Python 中的堆栈问题