Python .pop()不起作用

Joh*_*tas -1 python

我对python有点生疏了.一位朋友正在进行一些测试以准备他的考试,他给出了这段代码:

stack = [3, 4, 5]

stack.append(6)

stack.pop() 
Run Code Online (Sandbox Code Playgroud)

他被问到屏幕会显示什么,正确的答案是7.如何7?我甚至编写了代码并运行它.它是6.它是一个新版本返回数字+ 1或什么?或者也许老师给出的答案是错的.

Zau*_*auz 5

[3,4,5,6].pop()
Run Code Online (Sandbox Code Playgroud)

Python 2和Python 3都不返回7(都返回6).
最明显的答案是,当他们向你发送例子时,老师或你的朋​​友只是一个错字.


[3,4,5,6].pop()
Run Code Online (Sandbox Code Playgroud)

相当于

[3,4,5,6].pop(-1)
Run Code Online (Sandbox Code Playgroud)

两者都返回堆栈的最后一个(= top)元素.


随着[3,4,5].append(6)
你附加6到堆栈→你推动6堆栈顶部.

因此,如果你执行

stack = [3,4,5]
stack.append(6)
stack.pop()       # equ. to stack.pop(-1)
Run Code Online (Sandbox Code Playgroud)

结果将是6,也可能不是7.


有关如何以及为何将python中的列表用作各种数据结构(堆栈,队列等)的更详细说明,请考虑查看文档:https:
//docs.python.org/2/tutorial/datastructures html的