Python堆栈!特别是stack.push(stack.pop))

时间:2018-10-10 14:15:22

标签: python stack

我在理解stack.push(stack.pop())在此代码中的功能时遇到了麻烦

stack = Stack()
stack.push('1')
stack.push('2')
stack.push('3')
x = stack.pop()
y = stack.pop()
z = stack.pop()
stack.push(y)
stack.push(y)
stack.push('2')
while not stack.is_empty():
    print(stack.pop(), end='')

我知道堆栈中应该有3个项目,但是我不知道它们是什么以及它们最终如何打印?对于我如何弄清楚这一点的帮助将不胜感激!谢谢

1 个答案:

答案 0 :(得分:2)

Preferences: Open Keyboard Shortcuts File是一个功能类似于一堆盘子的对象。 Stack时,您要在堆叠的顶部添加一个盘子,而push时,您要从顶部移除一个盘子。您不会想要从底部取回盘子,这既昂贵又不必要。

在这种情况下,pop不执行任何操作。它将stack.push(stack.pop())移出堆栈顶部,然后再次pop移到顶部。在您的push循环中,您while个项目已从堆栈中取出,直到没有更多项目为止。 pop返回您已删除的项目,因此将其打印出来

示例:

pop