您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页python匿名函数

python匿名函数

来源:五一七教育网

1、匿名函数定义

lambda表达式也叫做匿名函数,在定义它的时候,没有具体的名称,一般用来快速定义单行函数lambda 表达式一般用于无需多次使用的函数,并且该函数使用完毕就释放了所占用的空间。

 2、语法格式

name = lambda [arg1[,arg2,arg3....argN]]:expression

name:用于调用lambda表达式。

[arg1 [,arg2,...,argn]]:可选参数,用于指定要传递的参数列表,多个参数间使用逗号“,”分隔。

expression:必选参数,用于指定一个实现具体功能的表达式。如果有参数,那么在该表达式中将应用这些参数。

test1 = lambda x : x+1
print(test1(5))
# 输出结果6
test2 = lambda x : 0 if x > 5 else 1
print(test2(6))
# 输出结果0

3、注意事项

1)lambda 表达式必须使用 lambda 关键字定义;

2)lambda 关键字后面,冒号前面是参数列表,参数数量可以从 0 到任意个数。多个参数用逗号分隔,冒号右边是 lambda 表达式的返回值。

3)lambda 表达式 : 后面只能有一个表达式,多个会出现错误

例:lambda x:x+1 x+2

4)for 语句不能用在 lambda 中lambda 表达式只允许包含一个表达式,不能包含复杂语句,该表达式的运算结果就是函数的返回值。

例:print((lambda x, y=1: x if x > y else y)(3))

5)lambda 表达式不能共享给别的程序调用

4、lambda 表达式应用场景

1)将 lambda 表达式赋值给一个变量,然后调用这个变量

fun = lambda a: a**2
print(fun(2))

2)将 lambda 表达式作为参数传递给其它函数

在某些函数中,函数设置中是可以接受匿名函数的,例如下述排序代码:

my_list = [(1, 2), (3, 1), (4, 0), (11, 4)]
my_list.sort(key=lambda x: x[1])
print(my_list)
# my_list 变量调用 sort 函数,参数 key 赋值了一个 lambda 表达式,
# 该式子表示依据列表中每个元素的第二项进行排序。

3)将 lambda 表达式应用在函数的返回值里面

这种技巧导致的结论就是函数的返回值也是一个函数,具体测试代码如下:

def fun(n):
    return lambda x:x+n

new_fun = fun(2)
print(new_fun)
# 输出结果:<function fun.<locals>.<lambda> at 0x000001E6070A00D0>

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务