Python-Lambda函数

时间:2020-02-23 14:42:52  来源:igfitidea点击:

在本教程中,我们将学习Python中的lambda函数。

什么是lambda函数?

Python中的lambda函数是一个匿名函数,可以接受多个参数,但只能具有一个表达式。

以下是lambda函数的语法。

lambda arguments: expression

其中," lambda"是我们用来创建lambda函数的关键字。
"参数"是我们传递给函数的参数,"表达式"是lambda函数的某种表达式。

关于lambda函数

  • 它们可以接受任意数量的参数,但必须仅以表达式的形式返回一个值。

  • Lambda函数只能访问全局变量和其参数列表中的变量。

  • 不能使用lambda函数仅输出值,因为lambda函数必须具有表达式。

lambda函数示例

在下面的Python程序中,我们将创建一个lambda函数,该函数采用字符串值并准备问候消息。

# lamda function
greeting = lambda str: "Hello %s!" %str

message = greeting('theitroad')

print(message)    # Hello theitroad!

在上面的代码中,我们将lambda函数分配给greeting变量。
然后我们将字符串" theitroad"传递给问候lambda函数,该函数将返回字符串" Hello theitroad!"并将其分配给" message"变量。
最后,我们正在打印结果。

什么时候使用lambda函数?

Lambda函数通常用于需要短时间匿名函数的场景。

我们可以在函数内部使用lambda函数。

在下面的Python程序中,我们从一个函数内部返回一个lambda函数,该函数随后用于获取给定数字的双精度值。

# func
def myFunc():
    # return lambda function
    return lambda n: n * 2

doubleIt = myFunc()

print(doubleIt(1))   # 2
print(doubleIt(2))   # 4
print(doubleIt(3))   # 6

在上面的代码中,我们在myFunc函数中有一个lambda函数。

我们调用myFunc函数,它返回分配给doubleIt变量的lambda函数。

最后,我们调用doubleIt函数并传递整数值,该值将被加倍并被打印出来。

我们甚至可以转换上面的代码来给我们一个更动态的乘数。

在下面的Python程序中,我们使用lambda函数创建一个动态乘法器。

# func
def multiplier(N):
    # return lambda function
    return lambda x: x * N

doubleIt = multiplier(2)
tripleIt = multiplier(3)
quadIt = multiplier(4)

print(doubleIt(3))   # 6
print(tripleIt(3))   # 9
print(quadIt(3))     # 12

练习1

使用lambda函数打印数字的多维数据集。

N的立方= N x N x N

因此,3 = 3 x 3 x 3 = 27的立方体

在下面的Python程序中,我们将创建一个lambda函数,该函数将用于计算数字的立方。

# lambda function
cube = lambda N: N * N * N

print(cube(1))   # 1
print(cube(2))   # 8
print(cube(3))   # 27
print(cube(4))   # 64
print(cube(5))   # 125