匿名函数-python匿名函数

ernestwang 865 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条评论)

还木有评论哦,快来抢沙发吧~

复制成功
微信号: irenyuwang
关注微信公众号,站长免费提供流量增长方案。
我知道了