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中用PIL库批量给图片加上序号的教程
May 06 Python
Python 3.x 新特性及10大变化
Jun 12 Python
Python+django实现文件上传
Jan 17 Python
Python求出0~100以内的所有素数
Jan 23 Python
python中的闭包函数
Feb 09 Python
Python基于plotly模块实现的画图操作示例
Jan 23 Python
pandas数据筛选和csv操作的实现方法
Jul 02 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
Jul 25 Python
Pycharm 字体大小调整设置的方法实现
Sep 27 Python
python中append函数用法讲解
Dec 11 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 24 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
php抓取https的内容的代码
2010/04/06 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
2017/03/07 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
Python绑定方法与非绑定方法详解
2017/08/18 Python
python下载文件记录黑名单的实现代码
2017/10/24 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
精彩自我鉴定
2014/01/16 职场文书
年终总结会议主持词
2014/03/17 职场文书
学校安全防火方案
2014/06/07 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书