5函数式编程---高阶函数sorted()

1.python内置的sorted()函数可以对list进行排序: sorted([1,7,5,-6,3])>>>[-6, 1, 3, 5, 7]

sorted()是一个高阶函数,可以接收一个key函数,来实行自定义排序。例如按绝对值大小排序:

>>> sorted([1,7,5,-6,3],key = abs)
[1, 3, 5, -6, 7]

2.对英文字符串按字母顺序进行排序:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
['about', 'bob', 'Credit', 'Zoo']


3.要进行反向排序,不必改动key函数,可以传入参数reverse=True:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower,reverse = True)
['Zoo', 'Credit', 'bob', 'about']

小结:

sorted是一个高阶函数,用sorted()排序的关键在于实现一个映射函数。


例题:L = [('Bob', 75), ('Adam', 92), ('Wart', 66), ('Lisa', 88)]

对L进行按字母顺序排序

def by_name(t):
return t[0]
L2 = sorted(L,key = by_name)
print(L2)--->>>[('Adam', 92), ('Bob', 75), ('Lisa', 88), ('Wart', 66)]



对L进行按数字大小排序

def by_num(t):
return t[1]
L3 = sorted(L,key = by_num)
print(L3)--->>>[('Wart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]


小结:通过以上例子发现,sorted(L,key)中,key是依次作用于L中的元素,key函数指定了作用于L元素的方法。结合下面的图片,可能会有更深的理解。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值