Python 高阶函数 -- Sorted

详细内容请参考廖雪峰官网,此处只是一些摘抄,心得与练习的coding。

  1. Python内置的sorted()函数就可以对list进行排序:

    >>> sorted([36, 5, -12, 9, -21])
    [-21, -12, 5, 9, 36]

     

  2. sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:
    >>> sorted([36, 5, -12, 9, -21], key=abs)
    [5, 9, -12, -21, 36]

     

  3. 这里必须强调的是sorted只会把第一个参数list的元素逐个传入到key指定的函数中,并不是把整个List传入。
  4. 要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True
    >>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
    ['Zoo', 'Credit', 'bob', 'about']
  5. sorted()排序的关键在于实现一个映射函数。
  6. 练习
    1.  假设我们用一组tuple表示学生名字和成绩:
      L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] 

      请用sorted()对上述列表分别按名字排序:

      # -*- coding: utf-8 -*-
      L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
      def by_name(t):
          return t[0]
      
      L2 = sorted(L, key=by_name)
      print(L2)

       

    2. 再按成绩从高到低排序:
      # -*- coding: utf-8 -*-
      L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
      def by_score(t):
          return t[1]
      
      L2 = sorted(L, key=by_score)
      print(L2)

       

转载于:https://www.cnblogs.com/ChrisK/p/9462846.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值