【发布时间】:2011-07-16 03:01:15
【问题描述】:
Python 中的某些函数运行“IN PLACE”的具体原因是什么,例如[].sort 和[].reverse,而其他一些函数例如[].append 则不是?
【问题讨论】:
-
根据什么定义,
[].append不能“就地”工作? -
append是否返回列表的新副本,而旧的副本保持不变? -
help([].sort) 明确地声明排序发生在“原地”,但 help([].append) 不会...
-
这是因为排序算法经常被归类为“就地”和“非就地”,而
[].append显然只会修改现有的数据结构,除非它是不可变的。 en.wikipedia.org/wiki/In-place_sorting -
@Guandalino:但两者都在原地运行。也许
.append的文档中没有说明它,因为非就地版本将被称为concat(实际上是+运算符)。