python中的sort和sorted用法汇总

sort()用法

sort()是python内置的列表排序方法,使用该函数可以快速的对列表进行排序。

python 复制代码
>>> a=[1,8,3,9,4,5]
>>> a.sort()
>>> a
[1, 3, 4, 5, 8, 9]
>>> 

可以看到sort()是对原列表进行排序的,不返回结果。

sort()函数中有两个参数key 和reverse ,先说reverse

python 复制代码
>>> a=[1,8,3,9,4,5]
>>> a.sort(reverse=True)
>>> a
[9, 8, 5, 4, 3, 1]

reverse默认为False,reverse=True时,表示按升序排序。

参数key 可以自定义排序操作,一般与lambda(匿名函数一起使用)

lambda 参数:表达式

例如,下面这个表达式实现的是平方的操作

python 复制代码
>>> a=lambda x:x*x
>>> print(a(-5))
25

可以使用这个表达式,来完成按照列表元素的平方来排序的操作

python 复制代码
>>> y=[1,-4,2]
>>> y.sort() #正常排序
>>> y
[-4, 1, 2]
>>> y=[1,-4,2]
>>> y.sort(key=lambda x:x*x) #按照元素的平方排序
>>> y
[1, 2, -4]

多重排序

如果列表中的元素是元组(tuple),key参数也支持对这种列表进行多重排序。如:

python 复制代码
>>> people = [[7,2],[4,4],[7,1],[5,0],[4,1],[5,2]]
>>> people.sort() #默认排序,逐个维度按升序排序
>>> people
[[4, 1], [4, 4], [5, 0], [5, 2], [7, 1], [7, 2]]
python 复制代码
>>> people = [[7,2],[4,4],[7,1],[5,0],[4,1],[5,2]]
>>> people.sort(key=lambda x:(x[0],-x[1])) #第二个维度按降序排序
>>> people
[[4, 4], [4, 1], [5, 2], [5, 0], [7, 2], [7, 1]]

sort()和sorted()的异同

sort() 和 sorted() 之间的主要区别在于 sorted() 函数接受一个列表并返回一个新的排序副本,sorted不改变原来的列表,重新生成排序后的列表,其他参数用法和sort一致。

python 复制代码
>>> y=[1,-4,2]
>>> y_res=sorted(y)
>>> y_res
[-4, 1, 2]
>>> y #原始列表不改变
[1, -4, 2]
python 复制代码
>>> y=[1,-4,2]
>>> y_res=y.sort()
>>> y #原来的列表变为排序后的列表
[-4, 1, 2]
>>> print(y_res) #返回None值
None
相关推荐
青少儿编程课堂1 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:字典树前缀树与单词检索统计
c++·python·算法·bfs·信息学竞赛
田里的水稻1 小时前
FA_CNN卷积神经网络十八---感知机到多层感知机PyTorch
人工智能·pytorch·python
終不似少年遊*2 小时前
【Skill】为中型研发团队制作的敏捷迭代AI副驾Skill
人工智能·python·华为云·agent·ai编程·skill
呆萌的代Ma2 小时前
python使用ThreadPoolExecutor自带队列将多线程变串行执行
python
echome8882 小时前
Python 正则表达式:5 个日常够用的模式
python·正则表达式
吴名氏.2 小时前
Java转AI Agent教程(第二周)超时重试与错误分类
java·人工智能·python·分类·ai agent
青少儿编程课堂2 小时前
2026蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:堆排序与优先队列解析
c++·python·算法·bfs·信息学竞赛
Eiceblue2 小时前
用 Python 给 Word 文档加水印:文字、图片与批量处理
开发语言·vscode·python·word
Android小码家2 小时前
framework&framework-minus-apex&android.jar的区别
android·python·jar
lee_curry3 小时前
第十周完整学习笔记:继续升级为“检索更准、权限安全、索引可维护、失败可恢复、长期可运行”的企业级 RAG 系统
python·ai·langchain·agent·langgraph