Python中Lambda函数

2024-04-19 19:28:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python3中有以下简单的函数:

def func(i,j):
    return lambda i,j: (i*j)

下面是此函数应执行的操作的示例:

IN: func(4,'Hello')
OUT: ('Hello' 'Hello' 'Hello' 'Hello')

但是,实际输出是存储结果的内存地址。我需要做什么修改?你知道吗


Tags: lambda函数in示例helloreturndefout
1条回答
网友
1楼 · 发布于 2024-04-19 19:28:36

如果要返回i * j的值,请继续并返回它。lambda意味着它返回一个函数,该函数按您所希望的方式运行。考虑一下:

def mul(x, y):
    return x * y

def func(x, y):
    return lambda x, y: x*y

现在让我们来看一个小shell会话:

>>> mul(4, 'hello')
'hellohellohellohello'
>>> func(4, 'hello')
<function 'lambda' at ...>
>>> f = func(4, 'hello')
>>> f(4, 'hello')
'hellohellohellohello'

如您所见,当您使用lambda时,您的函数将返回一个需要调用的函数。参数xy与lambda函数中的参数没有对应关系。你知道吗

由于预期的输出是xy元组,因此在函数中使用元组:

def func(i, j):
    return (j,) * i 

相关问题 更多 >