lambda 函数是一种小的匿名函数。
lambda 函数可接受任意数量的参数,但只能有一个表达式。


语法

  1. lambda arguments : expression

执行表达式并返回结果:

实例

将10添加到参数 a,并返回结果:

  1. x = lambda a : a + 10
  2. print(x(5))

lambda 函数可接受任意数量的参数:

实例

一个 lambda 函数,它把参数 a 与参数 b 相乘并打印结果:

  1. x = lambda a, b : a * b
  2. print(x(5, 6))

实例

一个 lambda 函数,它把参数 a、b 和 c 相加并打印结果:

  1. x = lambda a, b, c : a + b + c
  2. print(x(5, 6, 2))

为何使用 Lambda 函数?

当您把 lambda 用作另一个函数内的匿名函数时,会更好地展现 lambda 的强大能力。
假设您有一个带一个参数的函数定义,并且该参数将乘以未知数字:

  1. def myfunc(n):
  2. return lambda a : a * n

使用该函数定义来创建一个总是使所发送数字加倍的函数:

实例

  1. def myfunc(n):
  2. return lambda a : a * n
  3. mydoubler = myfunc(2)
  4. print(mydoubler(11))

或者,使用相同的函数定义来创建一个总是使您发送的数字增加三倍的函数:

实例

  1. def myfunc(n):
  2. return lambda a : a * n
  3. mytripler = myfunc(3)
  4. print(mytripler(11))

或者,使用相同的函数定义来创建一个总是使您发送的数字增加三倍的函数:

实例

  1. def myfunc(n):
  2. return lambda a : a * n
  3. mytripler = myfunc(3)
  4. print(mytripler(11))

或者,在同一程序中使用相同的函数定义来生成两个函数:

实例

  1. def myfunc(n):
  2. return lambda a : a * n
  3. mydoubler = myfunc(2)
  4. mytripler = myfunc(3)
  5. print(mydoubler(11))
  6. print(mytripler(11))