首页 >> 常识问答 >

问python 中的 sorted 函数 排序用法深度详解

2026-11-11 07:59:48

答

python 中的 sorted 函数是内置全局排序函数,它不会修改原来的可迭代对象,而是生成一份全新的排好序的列表,这是它和列表自带 sort 方法最核心的区别,支持数字 字符串 元组 字典等多种可迭代对象,还可以通过 key 参数自定义排序规则,通过 reverse 参数控制升序或者降序。很多新手容易混淆 sorted 和 sort,以为两者效果完全一样,sort 是列表原地排序,修改原列表并且返回 None,sorted 独立于列表方法,适用范围更广,做数据处理的时候,比如爬虫采集完的数据排序,学生成绩排序,商品价格排序,都会频繁用到 python 中的 sorted 函数,理解它的参数原理,掌握自定义 key 排序,是深入使用这个函数的重点。

一 基础语法

语法格式

sorted (可迭代对象,key=None, reverse=False)

参数说明

可迭代对象 必填,需要排序的数据,比如列表 元组 字符串

key 可选,自定义排序规则,传入函数,根据函数返回值进行排序

reverse 可选,默认 False 代表升序,设置 True 就是降序

基础示例

nums = [5,2,9,1]

new_nums = sorted (nums)

print (new_nums)

输出结果 [1,2,5,9]

原 nums 列表保持不变

二 核心特性表格

特性详细说明
函数类型python 内置全局函数,不属于列表专属
原数据不会改动原始可迭代对象
返回结果返回排好序的新列表
支持类型列表 元组 字符串 集合等可迭代对象
排序方式默认升序,reverse=True 切换降序
自定义排序通过 key 参数实现自定义排序逻辑

三 sorted 和列表 sort 方法对比

对比项python 中的 sorted 函数列表 sort 方法
调用方式全局函数 sorted (列表)列表对象方法 列表.sort ()
原数据保留原数据,生成新列表原地修改原列表
返回值返回新排序列表返回 None
适用范围所有可迭代对象只能列表使用

四 key 自定义排序深度讲解

key 是 python 中的 sorted 函数最重要的进阶参数,它会把每一个元素传入 key 对应的函数,用函数返回的值作为排序依据,原始元素本身不会改变。

示例 对元组列表,按照第二个元素排序

data = [("苹果",12),("香蕉",5),("橙子",20)]

res = sorted (data, key=lambda x:x [1])

这个代码就是按照元组第二个数字从小到大排序

还可以结合 len 函数,按照字符串长度排序

words = ["hi","python","ok"]

res = sorted (words, key=len)

五 常见实战场景

1 数字列表升序降序排序

2 字符串列表按字典序排序

3 字典列表,按照某一个键的值排序,比如按照分数 价格排序

4 多条件排序,key 返回元组,实现先按第一个条件,再按第二个条件排序

六 常见踩坑点

误区一 以为 sorted 会修改原列表,执行之后还去读取原数据,发现原数据没有变化

误区二 混淆 sorted 和 sort,把 sort 的原地修改特性套用到 sorted 上

误区三 key 参数理解错误,以为 key 会修改原始元素,实际只是生成排序参考值

误区四 排序元素类型不一致,比如同时混有字符串和数字,排序的时候触发类型报错

整体总结,python 中的 sorted 函数核心优势就是不改动原数据,返回新排序列表,支持 reverse 切换升降序,key 实现自定义排序,适用多种可迭代对象,和原地排序的 sort 方法区分清楚,就可以在各类数据排序任务里面正确使用。

【常见问题】

问题 1 python 中的 sorted 函数 会修改原来的列表吗

回答 1 python 中的 sorted 函数不会修改原来的列表,它会生成一份全新排好序的列表,原始数据保持不变。

问题 2 python 中的 sorted 函数 reverse 参数作用是什么

回答 2 python 中的 sorted 函数 reverse 参数默认 False 升序,设置为 True 之后就会按照降序进行排序。

问题 3 python 中的 sorted 函数 和列表 sort 有什么区别

回答 3 python 中的 sorted 函数是全局函数,返回新列表,支持多种可迭代对象,sort 是列表原地排序方法,返回 None,只能列表使用。

问题 4 python 中的 sorted 函数 key 参数是做什么的

回答 4 python 中的 sorted 函数 key 参数用来设置自定义排序规则,根据函数返回值作为排序依据,原始元素本身不会被修改。

【免责申明】

本文内容为 python 中的 sorted 函数语法教学,仅用于学习参考,详细参数定义可查阅 Python 官方文档。

 

相关阅读

最新文章