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

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

主要的区别有:

  • list.sort()是在list原地排序,不返回新list,而sorted()不会改变原list,而是返回一个新的已排序list。
  • list.sort()只能用于list,sorted()可以用于任何可迭代对象,比如list、tuple、set等。
  • list.sort()稍微快一点,因为它无需创造新的list。sorted()需要创建一个新的list来返回。
  • list.sort()是list的方法,sorted()是内置函数。
  • list.sort()没有key和reverse等参数,sorted()有这些参数用于自定义排序逻辑。

所以总结一下:

  • 需要原地排序 list 用 list.sort()
  • 需要新list排序或对任何可迭代对象排序 用 sorted()
  • 需要附加排序参数(key、reverse等) 用 sorted()
nums = [2, 3, 1, 5, 6, 4, 0]

print(sorted(nums))   # [0, 1, 2, 3, 4, 5, 6]
print(nums)           # [2, 3, 1, 5, 6, 4, 0]

print(nums.sort())    # None
print(nums)           # [0, 1, 2, 3, 4, 5, 6]
end
  • 作者:kali(作者介绍)
  • 更新时间:2022-07-20 18:09
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:转载站点文章,请附上原文链接
  • 翻译声明:翻译文章会不严谨,请务必附上原文链接
  • 扫描阅读:扫描二维码,手机阅读该文章