【Python】lambda匿名函数

简介: 在Python中,可以使用def 关键字定义函数,使用def定义的关键字是有名称的,在调用时可以重复使用.还有一种是使用lambda关键字进行函数的定义,这个方式定义的函数是匿名函数,只能临时使用一次本文主要讲解lambda匿名函数

前言

在Python中,可以使用def 关键字定义函数,使用def定义的关键字是有名称的,在调用时可以重复使用.还有一种是使用lambda关键字进行函数的定义,这个方式定义的函数是匿名函数,只能临时使用一次

本文主要讲解lambda匿名函数


lambda匿名函数的定义

lambda 形参: 函数体


注意:匿名函数的函数体只能写一行,无法写入多行代码


lambda匿名函数的使用

例如:

def test(func):
    ret = func(1, 2)
    print(f"ret = {ret}")
test(lambda x, y: x + y)
# 输出结果: ret = 3


执行逻辑:

image.png

使用lambda匿名函数可以直接帮你把结果返回给调用对象,因此不需要写return语句.


刚才提到了lambda匿名函数中的方法体只能写一行代码,否则就会报错.

image.png

使用lambda匿名函数写一个计算器

看到这是不是感觉lambda匿名函数挺奇怪的,可读性也不好,那它为什么要设置它呢?


存在即合理,其实使用lambda匿名函数也是做很多事情.我们在后面的学习中也会大量使用到lambda表达式 .就比如我们要写一个加减乘除的计算器,但只能在一个方法完成加减乘除的运算.这个时候就可以使用lambda表达式

看代码:


def func(compote, x, y):
    ret = compote(x, y)
    print(f"ret = {ret}")
func(lambda x, y: x + y, 6, 2)
func(lambda x, y: x - y, 6, 2)
func(lambda x, y: x * y, 6, 2)
func(lambda x, y: x // y, 6, 2)


运行截图:

image.png

可以看到这种方法只需要使用写一个方法,便可完整加减乘除的运算. 就是传入参数时比较麻烦.而不使用这种方式,写四个计算的函数也可以完成.相较于使用lambda表达式来说则是定义函数时比较麻烦.大家看需求使用即可.


总结

lambda表达式还是很重要的,在后面的学习中我们也会大量使用到lambda匿名函数.


相关文章
|
5月前
|
存储 Python
Python函数式编程,如何编写匿名函数(lambda表达式)?
Python函数式编程,如何编写匿名函数(lambda表达式)?
|
5月前
|
Python
Python解包参数列表及 Lambda 表达式
Python解包参数列表及 Lambda 表达式
|
3天前
|
程序员 Python
python lambda表达式表达式详解及应用
python lambda表达式表达式详解及应用
22 0
|
6天前
|
Python
Python中的匿名函数,即lambda函数
【5月更文挑战第6天】Python中的匿名函数,即lambda函数,用于简洁地定义小型函数,无需`def`关键字。示例:`double = lambda x: x * 2`,可将5加倍。常用于排序(自定义比较)、映射(如求平方)和过滤列表,以及作回调函数。然而,它们不适用于多行代码或复杂逻辑,此时需用常规函数。
4 0
|
13天前
|
Python 容器
python匿名函数、迭代器、高阶函数(二)
python匿名函数、迭代器、高阶函数(二)
|
13天前
|
索引 Python
python匿名函数、迭代器、高阶函数(一)
python匿名函数、迭代器、高阶函数(一)
|
25天前
|
存储
07-python函数的进阶-函数的多返回值/函数的多种传参方式/匿名函数/lambda函数
07-python函数的进阶-函数的多返回值/函数的多种传参方式/匿名函数/lambda函数
|
2月前
|
程序员 数据处理 开发者
【Python小技巧】通过实例说明推导式,条件表达式和Lambda函数
【Python小技巧】通过实例说明推导式,条件表达式和Lambda函数
25 2
|
2月前
|
Python
请解释Python中的lambda函数是什么?并举例说明其用法。
请解释Python中的lambda函数是什么?并举例说明其用法。
15 2
C4.
|
2月前
|
程序员 数据处理 Python
Python中lambda表达式
Python中lambda表达式
C4.
10 1