Python中实现多属性排序
我们有一组记录:
list_records =
(
(department, name, salary),
(department, name, salary),
...
(department, name, salary)
)
然后我们想进行类似 MS – Excel 里的 “then sort by” 中的功能一样先基于department排序,然后再在部门内按照salary排序。
其他编程语言可能相对复杂,我这里写出一个用Python实现的最简方法(也许有比这个还短的,来挑战吧)
list_records.sort(
key = lambda l: (l[0], l[2])
)
这个就是函数是编程的好处,可以无中生有的构造出一个没有名字的inline函数。假设我们有另外一个dictionary_age 是保存的 { name: ages }, 我们还可以简单的实现基于外部属性进行排序。例如,如果我们想先按照部门排序,然后在部门里按照年龄排序,我们可以写:
list_record.sort(
key = lambda l:( l[0], dictionary_age(l[1]) )
)
如果需要降序排列,可以设置 revserse = True; 如果想基于两个属性,一个升序,一个降序,可以试试将其中一个构造一个外部规则,然后如同上例子中的dictionary_age一样传递进去。
Done!
转载于酷壳CoolShell 无删改 仅以此纪念陈皓(左耳朵耗子)
所有权限设置对标 iOS 就行。 不准悬浮到桌面,不能添加图标,不能覆盖锁屏。 手机 rom 直接把这些功能裁剪掉 现在用安卓,挺累的,尤其是老人 没有权限和权限被禁用掉了一…
本来想入手遥遥领先的 P70 ,但看好多测评说屏幕混用,持续发热,掉电厉害,那就等等看蓝厂超大杯吧,5.13 19 点发布,期待一波吗?ps 参数:vivo X100U 预计搭…
之前几年一直用的 pdd ,没出什么意外,前几天只是看不惯 pdd 有些行为,想着不能惯着流氓,就试了下 tb 。 前二天第一次下单,买了些调料和一个小电器,一搜我要的电器牌子…