Python使用sorted排序的方法小结


Posted in Python onJuly 28, 2017

本文实例讲述了Python使用sorted排序的方法。分享给大家供大家参考,具体如下:

# 例1. 按照元素出现的次数来排序
seq = [2,4,3,1,2,2,3]
# 按次数排序
seq2 = sorted(seq, key=lambda x:seq.count(x))
print(seq2) # [4, 1, 3, 3, 2, 2, 2]
# 改进:第一优先按次数,第二优先按值
seq3 = sorted(seq, key=lambda x:(seq.count(x), x))
print(seq3) # [1, 4, 3, 3, 2, 2, 2]
'''
原理:
  先比较元组的第一个值,值小的在前。(注意:False < True)
  如果相等就比较元组的下一个值,以此类推。
'''

运行结果:

Python使用sorted排序的方法小结

#例2.这是一个字符串排序,排序规则:小写<大写<奇数<偶数
s = 'asdf234GDSdsf23'
s2 = "".join(sorted(s, key=lambda x: (x.isdigit(),x.isdigit() and int(x) % 2 == 0,x.isupper(),x)))
print(s2) # addffssDGS33224

运行结果:

Python使用sorted排序的方法小结

#例3. 一道面试题:
list1 = [7, -8, 5, 4, 0, -2, -5]
#要求1.正数在前负数在后 2.正数从小到大 3.负数从大到小
list2 = sorted(list1,key=lambda x:(x<0, abs(x)))
print(list2) # [0,4,5,7,-2,-5,-8]

运行结果:

Python使用sorted排序的方法小结

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python while、for、生成器、列表推导等语句的执行效率测试
Jun 03 Python
python装饰器初探(推荐)
Jul 21 Python
Python字符串处理实现单词反转
Jun 14 Python
Python封装原理与实现方法详解
Aug 28 Python
Django添加KindEditor富文本编辑器的使用
Oct 24 Python
PyQtGraph在pyqt中的应用及安装过程
Aug 04 Python
python+selenium 脚本实现每天自动登记的思路详解
Mar 11 Python
django执行数据库查询之后实现返回的结果集转json
Mar 31 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
python 密码学示例——理解哈希(Hash)算法
Sep 21 Python
Python学习之time模块的基本使用
Jan 17 Python
python基础之文件处理知识总结
May 23 Python
python发送邮件实例分享
Jul 28 #Python
Python分治法定义与应用实例详解
Jul 28 #Python
Python更新数据库脚本两种方法及对比介绍
Jul 27 #Python
Python判断文件或文件夹是否存在的三种方法
Jul 27 #Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
Jul 27 #Python
Python基于tkinter模块实现的改名小工具示例
Jul 27 #Python
python django 增删改查操作 数据库Mysql
Jul 27 #Python
You might like
通过代码实例解析PHP session工作原理
2020/12/11 PHP
显示、隐藏密码
2006/07/01 Javascript
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
JavaScript实现前端分页控件
2017/04/19 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
Python的语言类型(详解)
2017/06/24 Python
Python中定时任务框架APScheduler的快速入门指南
2017/07/06 Python
利用python获取Ping结果示例代码
2017/07/06 Python
python3图片文件批量重命名处理
2019/10/31 Python
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
中层干部竞聘演讲稿
2014/05/15 职场文书
2014年外贸业务员工作总结
2014/12/11 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL
SQL Server中锁的用法
2022/05/20 SQL Server