目录
一、什么是lambda函数
lambda函数是一种可以快速定义匿名函数的方式,匿名函数就是没有具体名称的函数。当我们需要用到函数对象,但又不想用标准的方式定义一个完整的函数时,就可以使用lambda函数,它特别适用于简短的、一次性的函数。
二、lambda函数的语法
lambda函数的语法如下,注意lambda函数是单表达式函数,只能包含一个表达式,不能包含多条语句。
lambda arguments: expression
lambda [参数列表]:表达式
# 中文语法格式
-
lambda关键字用来声明一个匿名函数。
-
arguments是lambda函数的参数列表,可以有多个参数,参数之间用逗号分隔。
-
expression是lambda函数的表达式,表达式的内容是函数的实现过程,表达式的计算结果是函数的返回值。
三、lambda函数用法示例
1.简单用法
例如计算两数之和,lambda函数接收两个参数x和y,并返回 x + y 的结果,用变量result接收返回结果。
# 定义一个lambda函数,计算两个数的和
add = lambda x, y: x + y
# 调用lambda函数
result = add(3, 6)
print(result) # 输出: 9
2.与内置函数结合使用
lambda函数经常与Python的内置函数(如map(),filter(),sorted()等)一起使用。
# Lambda函数与sorted()函数嵌套使用
role_list = [{"name": "张三", "height": "170"}, {"name": "李四", "height": "178"}, {"name": "王五", "height": "175"}]
sorted_roles = sorted(role_list, key=lambda role: role["height"])
print(sorted_roles) # 输出: [{'name': '张三', 'height': '170'}, {'name': '王五', 'height': '175'}, {'name': '李四', 'height': '178'}]
本例按照身高对角色进行从低到高排序。
3. 嵌套lambda函数
虽然Python允许lambda函数嵌套使用,但嵌套lambda函数可能会使代码变得难以阅读和维护。因此,在使用嵌套lambda函数时需要谨慎,并保证代码的可读性。
# 定义一个嵌套lambda函数,外层lambda接受两个参数x和y,内层lambda接受一个参数z,即括号里的5
nested_lambda = lambda x, y: (lambda z: (x + y) * z)(5)
# 调用嵌套lambda函数,并打印结果
result = nested_lambda(2, 3)
print(result) # 输出: 25
在本例中,外层lambda函数接收两个参数x和y,并返回内层lambda函数;内层lambda函数接收一个参数z,并返回 (x + y) * z 的结果。在外层lambda函数的定义中,我们用(5)调用了内层lambda函数,传递了值5作为z的参数。