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+django实现文件上传
Jan 17 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
python中format()函数的简单使用教程
Mar 14 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 Python
关于python多重赋值的小问题
Apr 17 Python
Python将string转换到float的实例方法
Jul 29 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
Python使用type动态创建类操作示例
Feb 29 Python
pycharm 如何取消连按两下shift出现的全局搜索
Jan 15 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 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实现的折半查找算法示例
2017/12/19 PHP
js传值 判断
2006/10/26 Javascript
破除一些网站复制、右键限制
2006/11/04 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
2019/06/24 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
Python入门篇之正则表达式
2014/10/20 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
节约电力资源的建议书
2014/03/12 职场文书
导师评语大全
2014/04/26 职场文书
公司授权委托书范文
2014/09/21 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
谢师宴学生致辞
2015/07/27 职场文书
三严三实·严以用权心得体会
2016/01/12 职场文书
信息技术课教学反思
2016/02/23 职场文书