在此声明, 此博客是我看过了廖雪峰老师的Python教程对此函数的理解, 旨在自我提高并将自己的感想分享给更多人。
排序是程序中常用的算法, 用C语言特别的头痛, 但是Python中一个函数搞定。
sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:
>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]
key指定的函数作用在原序列上排序后再返回处理过的List
重点内容
记住是返回List而不是Key, 也就是说序列中所有的数都是原序列中的数, Key只会改变排列顺序但并不会改变原来的List中的数值
list = [36, 5, -12, 9, -21]
keys = [36, 5, 12, 9, 21]
keys排序结果 => [5, 9, 12, 21, 36]
| | | | |
最终结果 => [5, 9, -12, -21, 36]
要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True:
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
['Zoo', 'Credit', 'bob', 'about']