您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么python列表具有pop()但没有push()

为什么python列表具有pop()但没有push()

因为“ append”早在想到“ pop”之前就已存在。受Python 0.9.1支持的list.append于1991年初。通过比较,这是在comp.lang.python上讨论的有关在1997年添加pop的一部分。Guido写道:

为了实现一个堆栈,需要添加一个list.pop()原语(不,基于任何原则,我都不反对这个特定的堆栈)。可以添加list.push()使其与list.pop()对称,但是我不太喜欢针对同一操作使用多个名称- 早晚要读取使用另一个名称代码,所以您需要同时学习两者,这会增加认知负担。

您还可以看到他讨论了是否应该在元素[0]或元素[-1]之后或在元素[-1]之后发布推/弹出/放/拉的想法,在那里他发布了对Icon列表的引用:

我仍然认为最好将所有这些都排除在列表对象实现之外-如果您需要具有特定语义的堆栈或队列,请编写一个使用列表的小类

换句话说,对于直接实现为python列表的堆栈,该堆栈已经支持快速的append()和del list [-1],认情况下list.pop()在最后一个元素上起作用是有意义的。即使其他语言的处理方式有所不同。

这里的隐含含义是,大多数人都需要追加到列表,但是很少有人有机会将列表视为堆栈,这就是为什么list.append出现得这么早的原因。

python 2022/1/1 18:39:08 有441人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶