lambda的使用及案例

lambda的使用方法:

用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。

lambda函数的语法只包含一个语句

  1. 使用方法:

    ​ lambda 参数1,参数2,…参数n:需要实现的功能(如:参数1+参数2+…+参数n),我们称这种方式构成的函数体(代码块)为 匿名函数

    test = lambda x, y: x + y
    print(test(3, 4))  # 7  
    print(test(5, 6))  # 11
    

    注意:在例子中,第一行代码实际上为函数体命名,方便后边的调用,但是一般不使用这种。

  2. 应用场景:
    1. 传参
      def sums(x,y):
          return x+y
      def minus(x,y):
          return x-y
      def calc(a,b,func):  # func 这里边是一个函数  叫做回调函数
          res = func(a,b)
          return res
      
      print(calc(10, 20, sums))  #30
      print(calc(10, 20, minus)  # -10
      

      ​ 上述方法是常规方法,就是直接定义函数来实现功能。可以发现sums函数和minus函数都比较简单。此时写函数来完成就显得有点麻烦。在此,我在这里给出另一种方法:

      def calc(a,b,func):  # func 这里边是一个函数  叫做回调函数
          res = func(a,b)
          return res
          
      res1 = calc(10, 20, lambda x, y: x + y)
      res2 = calc(10, 20, lambda x, y: x - y)
      print(res1, res2)  # 30 -10
      
      注意:这里直接将匿名函数lambda作为参数传入calc中参与运算
      

      注意:这里直接将匿名函数lambda作为参数传入calc中参与运算

    2. 比较大小
      # 01.方法一:
      x = 20
      y = 30
      if x > y:
          print("{}>{}".format(x,y))
      # 20<30
      
      # 02.方法二:
      x = 20
      y = 30
      res = x if x > y else y
      print(res)
      # 30
      
      #  03.方法三
      res = lambda x, y: x if x > y else y
      print(res(20, 30))
      # 7
      
    3. 排序
      students = [
          {
             'id': 1001, 'name': '周伟',  'sex': None, 'verbal': 90, 'math': 90, 'tel': '13512345670'},
          {
             'id': 1002, 'name': '赵刚',  'sex': True, 'verbal': 56, 'math': 80, 'tel': '13512345678'},
          {
             'id': 1003, 'name': '李强',  'sex': True, 'verbal': 48, 'math': 70, 'tel': '13512345680'},
          {
             'id': 1004, 'name': '刘毅',  'sex': None, 'verbal': 92, 'math': 60, 'tel': '13512345688'},
          {
             'id'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值