Python“IN PLACE”功能

时间:2011-03-15 20:44:46

标签: python in-place

Python中的某些函数运行“IN PLACE”的特殊原因是什么,例如[].sort[].reverse,而其他一些函数如[].append则没有?

2 个答案:

答案 0 :(得分:3)

根据我的编程Python第4版:

  

默认情况下,pop等效于   获取,然后删除,最后一个   偏移-1处的项目。有了一个论点,   pop删除并返回该项目   offset-list.pop(-1)是一样的   作为list.pop()。进行就地变更   append,insert,del等操作   并弹出,没有创建新列表   记忆,所以执行很快   (表现可能会进一步下降   哪个结束是“顶部”,但这个在   转向取决于Python的当前列表   实施,以及测量   我们稍后会探讨的概念。

实际上有一整节专门讨论这个问题,但这几乎可以回答你的问题。

答案 1 :(得分:2)

“就地”是指排序算法仅使用存储项目列表所需的内存加上一些小常量。追加不是排序算法,因此“就地”没有意义,或者至少不会意味着相同的事情。你在排序中“就地”混淆了它是否会返回对新对象或同一对象的修改版本的引用。