加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

匿名函数 lambda

发布时间:2023-06-27 10:38:49 所属栏目:教程 来源:
导读:在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。Python 提供了 lambda 表达式对匿名函数提供了有限支持,lambda 表达式的语法如下:

lambda args: expression
使用 lambda 表达式定义一
在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。Python 提供了 lambda 表达式对匿名函数提供了有限支持,lambda 表达式的语法如下:

lambda args: expression
使用 lambda 表达式定义一个函数,函数判断输入参数是否大于 0,如下所示:

lambda x: x >
该函数等价于函数 select_positive,如下所示:

def select_positive(x):return x >
函数 select_positive 与 lambda 表达式的功能相同,函数 select_positive 具有函数名称,lambda 表达式没有函数名,因此 lambda 表达式又被称为匿名函数。

使用 lambda 表达式重写程序

在前面的小节中,将函数作为参数,编写程序实现打印正数和负数。下面使用 lambda 表达式重写这个程序:

list = [, -, , -, , -]def select(list, select_function):for item in list:if select_function(item):print(item)select(list, lambda item: item > )select(list, lambda item: item < )
在第 3 行,定义了函数 select,它与前面的小节定义的函数完全相同

在第 4 行,遍历列表 list

在第 5 行,参数 selct_function 是一个函数,用于选择是否选中当前正在遍历的数值

在第 8 行,定义了 lambda 表达式

lambda 表达式判断输入参数是否为正数

将 lambad 表达式作为参数传递给函数 select,函数打印列表中的正数

在第 9 行,定义了 lambda 表达式

lambda 表达式判断输入参数是否为负数

将 lambad 表达式作为参数传递给函数 select,函数打印列表中的负数

程序输出结果如下:

1
2
3
-1
-2
-3

map 函数
使用 Python 内置的 map 函数时,通常会用到 lambda 表达式。map 函数的原型如下:

map(function, list)
map 函数接收两个参数 function 和 list,function 是一个函数,list 是一个可以被遍历的序列,map 将传入的函数依次作用到序列的每个元素,并把结果作为新的序列返回。 

调用函数 map 时,需要提供一个函数 y = f (x),函数 f 将输入 x 映射为输出 y

list = [, , ]list2 = map(lambda x: x * , list)for item in list2:print(item)list10 = map(lambda x: x + , list)for item in list10:print(item)
在第 1 行,定义原始序列 list

在第 3 行,定义 lambda 函数,作用于 list 中的每个元素,将每个元素乘以 2,生成一个新序列 list2

在第 4 行,打印输出新序列 list2

在第 7 行,定义 lambda 函数,作用于 list 中的每个元素,将每个元素加上 10,生成一个新序列 list10

在第 8 行,打印输出新序列 list10

程序输出结果如下:

2
4
6
11
12
13

Python 对 lambda 函数 的支持有限。当我们在编写程序的时候如果代码只是用一次,并不会复用的时候 lambda 函数是一个非常好的选择。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章