python进阶一(函数式编程)【2-5 python中的自定义排序函数】
2-5 python中的自定义排序函数 python中自定义排序函数 Python内置的 sorted()函数 可对list进行排序: >>> sorted ([ 36 , 5 , 12 , 9 , 21 ]) [ 5 , 9 , 12 , 21 , 36 ] 但 sorted()也是一个高阶函数,它可以 接收一个比较函数来实现自定义排序 ,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。 因此,如果我们要实现倒序排序,只需要编写一个reversed_cmp函数: 1 def reversed_cmp ( x , y ): 2 if x > y : 3 return - 1 4 if x < y : 5 return 1 6 return 0 这样,调用 sorted() 并传入 reversed_cmp 就可以实现倒序排序: 1 >>> sorted ([ 36 , 5 , 12 , 9 , 21 ], reversed_cmp ) 2 [ 36 , 21 , 12 , 9 , 5 ] 注意 :这里的格式写法和其他高阶函数不同,先写list后写函数名称 sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较: 1 >>> sorted ([