lambda 是个匿名函数,通常用于简单判断或者处理,例如判断一个数的奇偶性,过滤字符串,逻辑运算等等。
lambda表达式:
>>>lambda x:x*x
>>>lambda x,y:x*y
lambda介绍:“:”左边的"x"; "x,y",代表了声明的变量,变量参数为多个时用逗号隔开,“:”为表达式,表达式的返回值即为整个lambda匿名函数的返回值
lambda表达式嵌套:
>>>lambda x,y:lambda a,b:a+b+x+y
lambda介绍:嵌套后内层的lambda函数可引用外层lambda声明的变量,但一般不建议嵌套,可读性太差。
lambda使用方法:
第一种方法:直接赋值,赋值格式见代码
>>> (lambda x:x*x)(5)
25
>>> (lambda x,y:x*y)(5,6)
30
>>> (lambda x,y:lambda a,b:a+b+x+y)(1,2)(3,4)
10
第二种方法:表达式赋给对象,对对象赋值
>>> object = (lambda x:x*x)
>>> object(5)
25
>>> object = (lambda x,y:x*y)
>>> object(5, 6)
30
>>> object = (lambda x,y:lambda a,b:a+b+x+y)
>>> object(1, 2)(3, 4)
10
通常情况下lambda不单独使用,lambda与map,filter 等可迭代函数相结合来批量完成某个功能的转换。
例如:
根据字符串类型的IP和子网掩码来计算网段。
>>> ip = "10.17.99.63"
>>> netmask = "255.255.0.0"
>>> ".".join(map(lambda x,y:str(int(x)&int(y)),ip.split("."), netmask.split(".")))
'10.17.0.0'