PYTHON中实现多属性排序
2018-03-08 22:56
246 查看
我们有一组记录:
然后我们想进行类似 MS – Excel 里的 “then sort by” 中的功能一样先基于department排序,然后再在部门内按照salary排序。其他编程语言可能相对复杂,我这里写出一个用Python实现的最简方法(也许有比这个还短的,来挑战吧)
这个就是函数是编程的好处,可以无中生有的构造出一个没有名字的inline函数。假设我们有另外一个dictionary_age 是保存的 { name: ages }, 我们还可以简单的实现基于外部属性进行排序。例如,如果我们想先按照部门排序,然后在部门里按照年龄排序,我们可以写:
如果需要降序排列,可以设置 revserse = True; 如果想基于两个属性,一个升序,一个降序,可以试试将其中一个构造一个外部规则,然后如同上例子中的dictionary_age一样传递进去。Done!
微信扫码关注公众号“非典型互联网”,转发文章到朋友圈,截图发至公众号后台,即可获取干货资源链接;
2.互联网人交流群:
关注公众号“非典型互联网”,在公众号后台回复“入群”,人脉共享,一起交流;
![](https://user-gold-cdn.xitu.io/2018/3/4/161f01290459a825?imageView2/0/w/1280/h/960/format/webp/ignore-error/1)
作者:陈皓,博客地址:https://coolshell.cn/articles/18190.html
1234567 | list_records = ( (department, name, salary), (department, name, salary), ... (department, name, salary) ) |
123 | list_records.sort( key = lambda l: (l[ 0 ], l[ 2 ]) ) |
123 | list_record.sort( key = lambda l:( l[ 0 ], dictionary_age(l[ 1 ]) ) ) |
插播福利
1.近期整理了20G资源,包含产品/运营/测试/程序员/市场等,互联网从业者【工作必备干货技巧、行业专业书籍、面试真题宝典等】,获取方式:微信扫码关注公众号“非典型互联网”,转发文章到朋友圈,截图发至公众号后台,即可获取干货资源链接;
2.互联网人交流群:
关注公众号“非典型互联网”,在公众号后台回复“入群”,人脉共享,一起交流;
作者:陈皓,博客地址:https://coolshell.cn/articles/18190.html
相关文章推荐
- Python中实现多属性排序
- Python中实现多属性排序
- Python中实现多属性排序
- 算法基础:排序(二)——归并排序——Python实现
- python处理计算机辅助设计软件文字信息并实现排序输出
- Python实现几种常见排序代码
- python实现各种排序
- Python实现各种排序
- python实现合并两个排序链表
- 算法 排序 python 实现--归并排序
- (ASP.NET)用动态属性和DataView实现DataGrid的双向排序
- 快速排序的算法思想及Python版快速排序的实现示例
- 排序算法C++&&Python实现---基数排序
- python实现拓扑排序的基本教程
- Python 算法基础 排序实现
- 【排序】用Python实现八大排序算法--堆排序
- php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
- python字典数组排序实现
- Python利用operator模块实现对象的多级排序详解
- 二路归并排序Python实现