Python 进阶 之 lambda 匿名函数

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'

  

   

  

原文地址:https://www.cnblogs.com/JansXin/p/7451613.html