我的代码如下 将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)>