gpt4 book ai didi

python - `sorted(list)` 与 `list.sort()` 之间有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:00 27 4
gpt4 key购买 nike

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

  • 什么时候会优先选择其中一种?
  • 哪个更有效率?多少?
  • 执行list.sort()后列表可以恢复到未排序状态吗?
<小时/>

请使用Why do these list operations (methods) return None, rather than the resulting list?关闭 OP 无意中分配了 .sort() 结果的问题,而不是使用 sorted 或单独的语句。正确的调试将显示 .sort() 返回了 None,此时“为什么?”这是剩下的问题。

最佳答案

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

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

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

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

  • 不,您无法检索原始位置。一旦调用list.sort(),原始顺序就消失了。

关于python - `sorted(list)` 与 `list.sort()` 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57224985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com