高阶函数之sorted
排序算法:
Python’内置的sorted()
函数可对列表进行排序
>>> sorted([36, 5, -12, 9, -21])
[-21, -12, 5, 9, 36]
sorted()
也是一个高阶函数,可接受一个key函数实现自定义排序。
>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]
该排序函数:将所有的元素进行求绝对值后再进行排序
针对字符串排序:根据ASCII的大小来进行比较的,
>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
['about', 'bob', 'Credit', 'Zoo']
若想让它根据字母顺序进行排列,方法是将所有字符同一转换为大写或者小写进行排序:
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
['about', 'bob', 'Credit', 'Zoo']
若想进行反向排列,则需要加另一个参数:reverse
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
['Zoo', 'Credit', 'bob', 'about']
小结
sorted()
函数是一个高级函数,排序关键是在一实现一个映射函数。