Python 中 list.sort()
是列表中非常常用的排序函数,key
参数可以对单个属性进行排序。
但是想要实现类似 sql 中 order by id, age
一样,对多个字段进行排序就不支持了。
py2 中 sort()
函数还有个 cmp
参数可以传入一个方法,可以自定义对多个属性进行排序,py3 中移除了这个字段。
py3 想要实现这个功能,需要使用 functools
模块中的方法,实例如下
1 | #!/usr/bin/env python |
上面的例子我们实现了 id
正序排序,如果 id
相同,则按照 age
正序排序
为了方便可以封装成一个方法,以供列表调用,封装的方法 demo 可以参见地址
https://github.com/wxnacy/study/blob/master/python/office_module/list_demo/sort_by_multi_fields.py