本帖最后由 素简生香 于 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 的参数,应该如何修改? 参考代码回帖可见
|