lambda表达式——python干货

本章内容主要讲解了lambda表达式,在实际应用中还是经常被灵活使用到的,它通常只有一行代码,可以更简洁实现代码编写。

一、概念

        lambda表达式,又称为匿名函数。该函数是一种小型的,没有具名称的内联函数,它可以具有任意数量的参数,但只能有一个表达式。

        通常在需要函数作为参数传递的情况下使用,例如在 map()、filter()、reduce() 等函数中。(整篇以pthon3为例)


二、语法

lambda arguments: expression

  • arguments  冒号左侧表示参数,多个参数时,使用逗号隔开。
  • expression 冒号右侧表示返回值,可将表达式的结果当作返回值。

Lambda 函数可用于任何需要函数对象的地方。在语法上,匿名函数只能是单个表达式。在语义上,它只是常规函数定义的语法糖。与嵌套函数定义一样,lambda 函数可以引用包含作用域中的变量。(详细可参考官网讲解4. 更多控制流工具 — Python 3.12.4 文档)

官网lambda讲解部分
官网lambda表达式讲解内容

三、实现

1、lambda与普通函数方法实现对比

def f(x):
    return x**2
print f(4)

# Python中使用lambda的话,写成这样:
g = lambda x : x**2
print g(4)

优点:

  • 使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。
  • 对于一些抽象的,不会别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑命名的问题。
  • 使用lambda在某些时候让代码更容易理解。

缺点:

  • lambda和普通的函数相比,就是省去了函数名称而已,而且又不能共享在别的地方调用。
  • lambda在Python这种动态的语言中确实没有起到什么惊天动地的作用,因为有很多别的方法能够代替lambda。

在实际的应用中,lambda表达式常常作为map()、filter()等函数的参数实现参数传递,具体可参考以下例子实现。(更多的示例可参考Python lambda(匿名函数) | 菜鸟教程)

# 例子1:
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
print(filter(lambda x: x % 3 == 0, foo))

输出结果:
[18, 9, 24, 12, 27]

# 例子2:
print(map(lambda x: x * 2 + 10, foo))

输出结果:
[14, 46, 28, 54, 44, 58, 26, 34, 64]

# 例子3:
print(reduce(lambda x, y: x + y, foo))

输出结果:
139

总结

        以上是今天学习的lambda表达式的全部内容,它的语法其实不难,但作为其他函数的参数,是需要我们在不同实际场景正确理解和灵活掌握的,它可以简化代码编写,对代码也是易理解维护,但对于多处调用实现的函数功能,还是需要普通代码的编写实现。

(以上是小白学习中的总结,有任何不同理解或有问题的地方,欢迎大家指出)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值