如何在没有任何默认函数的情况下使用 lambda 划分两列数据



我的代码如下 将p_normal中的每个元素与V_normal中的相应元素相除,结果i_normal。示例,解决方案 i_normal = [3/1、5/2、7/3、8/4]

v_normal = [1,2,3,4]
p_normal = [3,5,7,8]
i_normal = lambda x,y: x/y in (p_normal,v_normal)

它给出的输出为:

<function <lambda> at 0x00000000062D0F28>

我的问题是,lambda 函数有什么问题

根据下面给出davedwards答案,我得到了正确的答案。代码是

i_normal = list(map(lambda x, y: x/y, p_normal, v_normal))

答案是

[3.0, 2.5, 2.3333333333333335, 2.0]

首先,您需要了解lambda函数的工作原理。 让我在这里给你一个简单的例子

a = lambda x,y: x+y

如果你这样做print(a)

你会得到这样的输出:

<function __main__.<lambda>(x, y)>

但是如果你传递参数

print(a(5,6))

你将得到的输出为:

11

在您的情况下,您正在做

x = 5
y =6
a = lambda x,y: x+y   # You are defining a function here

上面的函数不会取 x,y 的值。这些是该函数的局部变量。

所以它显然会给出输出:

<function __main__.<lambda>(x, y)>

最新更新