`sorted(list)`vs`list.sort()`有什么区别?蟒蛇

list.sort()排序列表并保存排序的列表,而sorted(list)返回排序的列表而不更改原始列表。

>但是什么时候使用哪个?
>哪个更快?而且多快了多少?
>可以在list.sort()之后检索列表的原始位置吗?

sorted()返回一个新的排序列表,使原始列表不受影响。 list.sort()就地对列表进行排序,改变列表索引,并返回None(像所有就地操作一样)。

sorted()适用于任何可迭代,而不仅仅是列表。字符串,元组,字典(你会得到键),生成器等,返回一个包含所有元素的列表,排序。

>当你想要改变列表时,使用list.sort(),当你想要一个新的排序对象时,使用sorted()。当你想对一个可迭代的,而不是列表的东西进行排序时,使用sorted()。
>对于列表,list.sort()比sorted()快,因为它不必创建副本。对于任何其他迭代,你没有选择。
>否,您无法检索原始位置。一旦你调用list.sort(),原来的顺序就没了。

http://stackoverflow.com/questions/22442378/what-is-the-difference-between-sortedlist-vs-list-sort-python

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:`sorted(list)`vs`list.sort()`有什么区别?蟒蛇