python中的sort用法
内置的列表类型提供sort的方法
可以根据多项指标给list实例中的元素排序。在默认情况下,sort方法总是按照自然升序排列列表内的元素
1 2 3 4 5 6 7 8 9 | #升序排列 list1 = [ 2 , 3 , 1 , 2 , 5 ] list1.sort() print (list1) #[1, 2, 2, 3, 5] #降序排列可以使用指定参数reverse=True(默认是False) list1 = [ 2 , 3 , 1 , 2 , 5 ] list1.sort(reverse = True ) print (list1) #[5, 3, 2, 2, 1] |
对多个标准进行排序
在Python语言里,最简单的方案是利用元组(tuple)类型实现。元组是一种不可变的序列,能够存放任意的Python值。两个元组之间是可以比较的,因为这种类型本身已经定义了自然顺序
1 2 3 4 5 6 7 8 | #元组可以比较大小,会依次比较每个位置的那两个对应元素,直到能够确定大小为止 a = ( 1 , "a" ) b = ( 2 , "a" ) print ( a > b) #False c = ( 1 , "b" ) d = ( 1 , "a" ) print ( c > d) #True |
根据这个特性我们可以把需要比较的标准组成元组
1 2 3 4 5 6 7 8 9 | a = [( 4 , "a" ),( 2 , "b" ),( 4 , "b" ),( 2 , "a" ),( 3 , "e" )] a.sort() print (a) #[(2, 'a'), (2, 'b'), (3, 'e'), (4, 'a'), (4, 'b')] #如果我们只想特殊标准去排序可以使用关键词key b = [( 4 , "a" ),( 2 , "b" ),( 4 , "b" ),( 2 , "a" ),( 3 , "e" )] #只按第一个标准去排序,如果第一个标准判断一致,则按原顺序排序 b.sort(key = lambda x : x[ 0 ]) print (b) #[(2, 'b'), (2, 'a'), (3, 'e'), (4, 'a'), (4, 'b')] |
组合:
1 2 3 4 | #按第一个标准去降序排序(这里用到一个一元减操作符),第二个参数升序 c = [( 4 , "a" ),( 2 , "b" ),( 4 , "b" ),( 2 , "a" ),( 3 , "e" )] c.sort(key = lambda x : ( - x[ 0 ],x[ 1 ])) print (c) #[(4, 'a'), (4, 'b'), (3, 'e'), (2, 'a'), (2, 'b')] |
注:
如果实际应用过程中需要保留原有列表,使用sorted()函数较为适合,否则可以选择sort()函数,因为sort()函数不需要复制原有列表,消耗的内存较少,效率也较高。
作者: yetangjian
出处: https://www.cnblogs.com/yetangjian/p/16213635.html
关于作者: yetangjian
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(yetangjian@outlook.com)咨询.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~