python如何给数字排序

Python数字排序用sorted()返回新列表或.sort()原地修改列表;前者安全通用,后者高效省内存;均支持reverse=True降序和key参数自定义规则(如abs)。

Python 给数字排序很简单,核心是用 sorted() 函数或列表的 .sort() 方法。关键区别在于:前者返回新列表,不改变原列表;后者直接修改原列表,返回 None

用 sorted() 得到新排序列表

适用于需要保留原始顺序,或对元组、range 等不可变序列排序:

  • nums = [3, 1, 4, 1, 5]
  • sorted_nums = sorted(nums)[1, 1, 3, 4, 5]
  • 升序是默认行为;降序加参数 reverse=Truesorted(nums, reverse=True)

用 .sort() 原地排序列表

只适用于列表,效率略高(不创建新对象),但会覆盖原数据:

  • nums = [3, 1, 4, 1, 5]
  • nums.sort()nums 变成 [1, 1, 3, 4, 5]
  • 同样支持 reverse=True 实现降序

对浮点数、负数、混合数字一样有效

Python 数字排序按数学大小比较,无需额外处理:

  • mixed = [-2.5, 10, 0, -100, 3.14]
  • sorted(mixed)[-100, -2.5, 0, 3.14, 10]

按绝对值或其他规则排序(用 key 参数)

比如想按“离 0 的距离”排,而不是数值本身:

  • nums = [-5, 3, -1, 4]
  • sorted(nums, key=abs)[-1, 3, 4, -5](因为 abs 后是 1,3,4,5)
  • key 接收一个函数,每个元素先被它处理,再按结果排序

基本上就这些。记住 sorted() 安全通用,.sort() 快且省内存——选哪个,看你要不要留原顺序。