51Testing软件测试论坛
标题: sorted 的高级用法 [打印本页]
作者: 素简生香 时间: 2017-11-16 14:49
标题: sorted 的高级用法
本帖最后由 素简生香 于 2017-11-17 11:30 编辑
sorted 的高级用法
日常使用 python 内建函数 sorted 时候,最多用到降序还是升序排序,也就是对于参数 reverse 的使用,默认情况下 reverse 为 False,即为升序排序,相反的为 True,则为降序排列;然而有些时候,我们需要用到更高级的 cmp 和 key 参数,下面先看一下 sorted 的帮助文档
联机帮助文档
Help on built-in function sorted in module __builtin__:
sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
(END)
默认情况下,cmp 和 key 均为 None。 下面先看一下 cmp 的使用示例:
>>>aList = [('b',2),('a',1),('c',3),('d',4)]
>>>print sorted(aList, cmp=lambda x,y:cmp(x[1],y[1]))
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
在看一个 key 的使用示例:
>>>aList = [('b',2),('a',1),('c',3),('d',4)]
>>>print sorted(aList, key=lambda x:x[1]))
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
注意 cmp 和 key 的参数均为 lambda 表达式,但是 key 的运行效率要比 cmp 高,故而通常建议用 key。
思考题
思考一下,若先对x[1]排序,在对 x[2]排序,key 的参数,应该如何修改?
参考代码回帖可见
作者: 梦想家 时间: 2017-11-17 09:06
123123123
作者: 梦想家 时间: 2018-5-14 17:48
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) |
Powered by Discuz! X3.2 |