lambda函数

lambda函数也叫匿名函数,就是没有函数名的函数。lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象。

lambda函数的语法只包含一个语句:
lambda [arg1 [,arg2,.....argn]]:expression
  • 冒号前面的是参数,可以有多个,用逗号隔开,冒号右边的是返回值。lambda语句构建的其实是一个函数对象。

例如下面这段代码,实现两个数相乘:

def fun(x, y):
    return x * y

print(fun(2,3))  # 6

如果我们使用lambda来写的话,一个lambda 表达式就可以搞定,不需要使用def :

fun = lambda x, y: x * y
print(fun(2, 3))  # 6

lambda使用

lambda相较于普通函数来说更加简洁,但是却不能共享在别的地方调用。所以一般是这个代码不需要别的地方复用,可以考虑使用lambda,这样的话可以省略给函数命名。

  • Python提供了很多函数式编程的特性,如filter、reduce、map、sorted等都支持函数作为参数,lambda函数就可以应用在函数式编程中。
# filter
list1 = [3, 12, 9, 25, 17, 36, 14, 17, 27]
list2 = filter(lambda x: x % 3 == 0, list1)
print(list(list2))  # [3, 12, 9, 36, 27]

# map
list1 = [3, 12, 9, 25, 17, 36, 14, 17, 27]
list2 = map(lambda x: x * 10, list1)
print(list(list2))  # [30, 120, 90, 250, 170, 360, 140, 170, 270]

# reduce
from functools import reduce
list1 = [3, 12, 9, 25, 17, 36, 14, 17, 27]
print(reduce(lambda x, y: x * y, list1))  # 31854967200

总结lambda 的使用其实很简单,但是也不要盲目去使用lambda ,看是否需要再使用它。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值