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

2024-04-07

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

  • 什么时候一个人比另一个人更受青睐?
  • 哪个更有效率?多少?
  • 列表可以恢复到未排序状态吗list.sort()已执行?

Please use Why do these list operations (methods) return None, rather than the resulting list? https://stackoverflow.com/questions/11205254 to close questions where OP has inadvertently assigned the result of .sort(), rather than using sorted or a separate statement. Proper debugging would reveal that .sort() had returned None, at which point "why?" is the remaining question.


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

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

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

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

  • 不可以,您无法恢复原来的位置。一旦你打电话list.sort()原来的订单不见了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

`sorted(list)` 与 `list.sort()` 有什么区别? 的相关文章

随机推荐