匿名函数-python匿名函数

    Python编程 wuya 24次浏览 已收录 0个评论

    匿名函数

    • 预备知识
      def test():
          print('for test')
          
      # 函数的名字
      print(test.__name__)
      
      # 可以像普通变量一样赋值
      a = test
      print(a.__name__)
      
      test()
      a()
      
      def demo(func):
          func()   
          
      # 函数可以为其他函数的参数
      demo(test)
    • 匿名函数
      • 场景:当一个函数作为另一函数的参数时,若改函数非常简单,而且只使用一次,先定义函数,然后作为参数传递没有必要,可以通过匿名函数进行解决。
      • 格式:lambda 参数列表: 表达式
        • 参数列表:书写形式与函数的参数列表相同
        • 表达式:就是匿名函数的返回值,不需要使用return关键字
      • 示例:
      def calc(a, b, yunsuan):
          return yunsuan(a, b)
      
      def add(a, b):
          return a+b
      
      print(calc(3, 5, add))
      print(calc(3, 5, lambda a, b: a+b))
      print(calc(3, 5, lambda a, b: a*b)) 
    • 优点:
      • 使用简洁,不用单独的定义函数,可以在调用的函数参数中直接书写
      • 使用完毕后自动释放,节约内存空间
    • 列表排序
      # lt = [3, 6, 2, 1, 8, 4]
      lt = [
          {'name': 'dahua', 'age': 18, 'height': 175},
          {'name': 'erhua', 'age': 17, 'height': 165},
          {'name': 'dagou', 'age': 22, 'height': 185},
          {'name': 'ergou', 'age': 21, 'height': 180}
      ]
    
    
      def key(dt):
          return dt['age']
    
      # lt.sort(key=key)
      lt.sort(key=lambda dt: dt['height'])
    
      for i in lt:
          print(i)
    • 练习:自己实现列表排序函数,算法不限,支持升序和降序,可以排序任意类型数据

    学海无涯 , 版权所有丨如未注明 , 均为原创丨转载请注明匿名函数-python匿名函数
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址