0


python的匿名函数用法

python中有一种特殊的函数,不需要使用def定义来定义,也不需要给函数起个函数名,这种函数被称作匿名函数
匿名函数定义格式:
lambda 参数 : 表达式 (返回值)
匿名函数调用方法一:(lambda n,m : n+m)(1,3)
此方法优点:省内存,提高性能,函数定义用完,就会被当场销毁

print((lambda n,m : n+m)(1,3))

匿名函数调用方法二(不建议用,需要耗费内存存放函数)
a = lambda n,m : n+m
a(1,3)

a =lambda n,m : n+m
print(a(1,3))

匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。

用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:

有些函数在代码中只用一次,而且函数体比较简单,使用匿名函数可以减少代码量,看起来比较"优雅

可以和map结合起来使用,map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回,遍历序列,对序列中每个元素进行函数操作,最终获取新的序列。

list1 =[21,1,2,34,3]
b =map(lambda x:x+10,list1)print(list(b))

F:\pythonProjec\TestRequests\venv\Scripts\python.exe F:/pythonProjec/TestRequests/test001/ck_study_day_02.py
[31,11,12,44,13]

Process finished with exit code 0

也可以和filter函数结合起来使用
filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。对于序列中的元素进行筛选,最终获取符合条件的序列
以下脚本举个筛掉大等于于10,,只保留小于10的例子

list1 =[21,1,2,34,3]# b = map(lambda x:x+10,list1)# print(list(b))
b =filter(lambda x:x<10,list1)print(list(b))

F:\pythonProjec\TestRequests\venv\Scripts\python.exe F:/pythonProjec/TestRequests/test001/ck_study_day_02.py
[1,2,3]

Process finished with exit code 0
标签: python

本文转载自: https://blog.csdn.net/weixin_44897491/article/details/120278588
版权归原作者 weixin_44897491 所有, 如有侵权,请联系我们删除。

“python的匿名函数用法”的评论:

还没有评论