python 匿名函数 lambda

    1. 匿名函数
      1. 返回两参数之和:
        lambda a, b: a+b
      2. 语法:lambda [arg1 [,arg2,.....argn]]:expression
        冒号前是参数,冒号后是表达式,返回表达式的值
      3. 直接传参:
        (lambda x, y: x if x>y else y)(1, 2)
      4. 函数嵌套匿名函数:
        def add(n):
            return lambda x: x + n
        f = add(1)
        print(f(2))
        1的参数是add方法的,2是匿名函数参数,函数嵌套匿名函数,函数方法返回的是一个函数,需要带匿名函数的参数才能正常返回值
      5. 列表和匿名函数结合使用:
        L = [lambda x: x ** 2, lambda x: x ** 3, lambda x: x ** 4]
        for x in L:
            print(x(2))
        也可以通过print L[0](2)调用
      6. 与字典结合使用:
        dic = {'A': lambda x: x * 2, 'B': lambda x: x * 4, 'C': lambda x: x * 6}
        for key, value in dic.items():
            print(value(2))
      7. 与map结合使用,对序列进行函数处理--返回值为迭代器,需用list等显示出来
        map(function, iterable, ...)
        a = [1, 2, 3, 4]
        b = [5, 6, 7, 8]
        c = list(map(lambda x, y: x + y, a, b))
        print(c)
      8. filter与匿名函数联合使用:
        filter(function,iterable) 前者过滤函数,后者参数序列
        print(list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6])))
      9. sorted与匿名函数结合使用: 多个元素排序
        info = [('James', 20), ('Alies', 20), ('Wendy', 25)]
        a = sorted(info, key=lambda age: (age[1], age[0]))  # 按照第二个元素,然后再按第一个元素排序
        print(a)
      10. reduce与匿名函数结合使用
        reduce(lambda x, y: x+y, [1,2,3,4,5])
      11. 注意事项:
        1、可以使用for…in…if来完成的,坚决不用lambda。
        2、lambda内不要包含循环,如果有,应定义函数来完成
        lambda 是为了减少单行函数的定义而存在的。
        3、lambda函数不能换行

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值