Python“到位”功能
Python 中的某些函数“就地”运行(例如 [].sort
和 [].reverse
),而另一些函数(例如 [])的具体原因是什么。追加
不?
What's the particular reason that some functions in Python operate "IN PLACE", like [].sort
and [].reverse
, while some others like [].append
not?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据我的《Python 编程》第四版:
实际上有一整节专门讨论这个问题,但这几乎回答了你的问题。
According to my Programming Python 4th edition:
There is actually a whole section devoted to this, but this pretty much answers your question.
“in-place”是指仅使用存储所需的内存的排序算法项目列表加上一些小常量。附加不是排序算法,因此“就地”没有意义,或者至少不会意味着相同的事情。您混淆了排序中的“就地”以及它是否返回对新对象或同一对象的修改版本的引用。
"in-place" refers to a sorting algorithms use of only the memory needed to store the list of items plus some small constant. Append isn't a sorting algorithm and thus "in-place" is not meaningful, or at least wouldn't mean the same thing. You're confusing "in-place" in sorting and whether or not it returns a reference to a new object or a modified version of the same object.