一尘不染

Python-sorted(list)和list.sort()有什么区别?

python

list.sort()对列表进行排序并保存排序后的列表,同时sorted(list)返回列表的排序后的副本,而不更改原始列表。

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

阅读 545

收藏
2020-02-19

共1个答案

一尘不染

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

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

  • 使用list.sort()时要变异列表中,sorted()当你想要一个新的排序的对象返回。使用sorted()时要排序的东西,是一个可迭代,而不是一个名单尚未。

  • 对于列表,list.sort()它比sorted()不需要创建副本要快。对于其他任何迭代,你别无选择。

  • 不,你无法检索原始位置。一旦你致电list.sort(),原始订单就消失了。

2020-02-19