函数式编程--高阶函数--sorted

定义

sorted函数可以list进行排序

#sorted可以对list进行排序
L=[3,7,-11,10,6]

print(sorted(L))

sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。例如按绝对值大小排序:

#接受一个abs,按照绝对值排序
print(sorted(L,key=abs))

以上两个输出结果为:

[-11, 3, 6, 7, 10]
[3, 6, 7, 10, -11]
#对字符串进行排序,默认对ASCII码的大小进行排序
names=['bob', 'about', 'Zoo', 'Credit']

print(sorted(names))

#要求忽略大小写,按字符顺序进行排序,传入一个lower函数将大写转为小写
print(sorted(names,key=str.lower))

#进行反项排序
print(sorted(names,key=str.lower,reverse=True))

以上三项的输出

['Credit', 'Zoo', 'about', 'bob']
['about', 'bob', 'Credit', 'Zoo']
['Zoo', 'Credit', 'bob', 'about']

以下例子中key=by_sorce 将函数作用L的每一个元素,返回对应的新 L[75,92,66,88] ,然后sorted 函数对新L进行排序

#学生成绩如下,根据姓名进行排序
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]

def by_name(t):
    return t[0]

L2 = sorted(L, key=by_name)
print(L2)
    
#根据成绩进行排序

def by_sorce(t):
    return t[1]

L3=sorted(L,key=by_sorce,reverse=True)
print(L3)

 

关于python中的排序:http://www.iplaypy.com/jinjie/jj114.html

posted @ 2017-04-27 17:16  wangxy92  阅读(202)  评论(0编辑  收藏  举报