python中的lambda函数用法指南

 更新时间:2023年01月06日 11:53:32   作者:柳小葱  
Lambda函数是Python中的匿名函数,下面这篇文章主要给大家介绍了关于python中lambda函数用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

最近碰见太多次lambda函数了,那就来详细解释一下该函数。

lambda函数

我们先对lambda函数进行一个简单的介绍

  • lambda函数是一种匿名函数,即没有名字的函数
  • 使用lambda保留字定义,函数名是返回结果
  • lambda函数的函数体只是一个表达式
  • lambda函数用于定义简单的、能够在一行内表示的函数
  • lambda表达式” : “后面,只能有一个表达式,def则可以有多个。
  • lambda一般用来定义简单的函数,而def可以定义复杂的函数

先来看一个例子:

g=lambda x:x+1
print(g(1))
#结果为2

可以这样认为,lambda作为一个表达式,定义了一个匿名函数。等价于:

def g(x):
    return x+1

非常容易理解,在这里lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解。

可传入多个参数

g=lambda x,y,z:x+y+z*2
print(g(1,2,3))
#结果为9

#也可直接传递参数
(lambda x:x**2)(3)
#结果为9

lambda表达式会返回一个函数对象,如果没有变量接受这个返回值的话,它很快就会被丢弃。也正是由于lambda只是一个表达式,所以它可以直接作为list和dict的成员

list_a = [lambda a: a**3, lambda b: b**3]
print(type(list_a[0]))

结果为:

与map函数进行使用

a = map(lambda x:x**2,range(5))
print(list(a))

结果为:

补充:一个争议

事实上,关于lambda在Python社区是存在争议的。Python程序员对于到底要不要使用lambda意见不一致。

  • 支持方认为使用lambda编写的代码更紧凑,更“pythonic”。
  • 反对方认为,lambda函数能够支持的功能十分有限,其不支持多分支程序if...elif...else...和异常处理程序try ...except...。并且,lambda函数的功能被隐藏,对于编写代码之外的人员来说,理解lambda代码需要耗费一定的理解成本。他们认为,使用for循环等来替代lambda是一种更加直白的编码风格。

关于lambda的争执没有定论。在实际中,是否使用lambda编程取决于程序员的个人喜好。

总结

lambda函数使代码结构更加紧凑,但却使代码看起来不是那么清晰。

参考资料

https://zhuanlan.zhihu.com/p/80960485

到此这篇关于python中的lambda函数用法的文章就介绍到这了,更多相关python中lambda函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现数据的序列化操作详解

    Python实现数据的序列化操作详解

    在日常开发中,对数据进行序列化和反序列化是常见的数据操作,Python提供了两个模块方便开发者实现数据的序列化操作,即 json 模块和 pickle 模块。本文就为大家详细讲解这两个模块的使用,需要的可以参考一下
    2022-07-07
  • 搭建pypi私有仓库实现过程详解

    搭建pypi私有仓库实现过程详解

    这篇文章主要介绍了搭建pypi私有仓库实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • python django 增删改查操作 数据库Mysql

    python django 增删改查操作 数据库Mysql

    下面小编就为大家带来一篇python django 增删改查操作 数据库Mysql。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 使用apidoc管理RESTful风格Flask项目接口文档方法

    使用apidoc管理RESTful风格Flask项目接口文档方法

    下面小编就为大家分享一篇使用apidoc管理RESTful风格Flask项目接口文档方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • python 用 xlwings 库 生成图表的操作方法

    python 用 xlwings 库 生成图表的操作方法

    这篇文章主要介绍了python 用 xlwings 库 生成图表的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • 对python操作kafka写入json数据的简单demo分享

    对python操作kafka写入json数据的简单demo分享

    今天小编就为大家分享一篇对python操作kafka写入json数据的简单demo,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python实现前端样式尺寸单位转换

    Python实现前端样式尺寸单位转换

    在 Web 前端项目开发时,样式尺寸都是以 rpx 为单位,可是 UI 设计师在看完开发后的 UI ,却要求都以 px 为单位,所以本文就和大家分享一个利用Python就能实现尺寸单位转换的方法吧
    2023-06-06
  • pandas重复行删除操作df.drop_duplicates和df.duplicated的区别

    pandas重复行删除操作df.drop_duplicates和df.duplicated的区别

    本文主要介绍了pandas重复行删除操作df.drop_duplicates和df.duplicated的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • python中lambda()的用法

    python中lambda()的用法

    这篇文章主要介绍了python中lambda()的用法,在python中有一个匿名函数lambda,匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序,需要的朋友可以参考下
    2017-11-11
  • python使用aiohttp通过设置代理爬取基金数据简单示例

    python使用aiohttp通过设置代理爬取基金数据简单示例

    这篇文章主要为大家介绍了python使用aiohttp通过设置代理爬取基金数据简单示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论