小编典典

`sorted(list)` 与 `list.sort()` 有什么区别?

all

list.sort()对列表进行排序并替换原始列表,而sorted(list)返回列表的排序副本,而不更改原始列表。

  • 什么时候优先于另一个?
  • 哪个更有效率?多少?
  • 列表执行后是否可以恢复为未排序状态list.sort()

阅读 135

收藏
2022-05-16

共1个答案

小编典典

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

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

  • list.sort()当你想改变列表,sorted()当你想要一个新的排序对象时使用。sorted()当您想要对可迭代的东西进行排序时使用, 不是列表。

  • 对于列表,list.sort()sorted()因为它不必创建副本要快。对于任何其他可迭代对象,您别无选择。

  • 不,您无法检索原始位置。一旦你打电话list.sort(),原来的订单就不见了。

2022-05-16