Python Lambda函数输出function_main消息而不是数字?

user71812 1 python lambda

我正在尝试生成x在(0,17)和y = 1 /(x ** 2 + 1)范围内的散点图。这是我用来为y生成lambda函数的代码:

y = [lambda x:1/(x**2+1) for x in range(17)]
y

显然,它显示此输出17次:

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

我对上面的代码有什么错?谢谢!

AKX.. 5

您不是在循环中调用该函数。

你可以做

f = lambda x: 1 / (x ** 2 + 1)
y = [f(x) for x in range(17)]

或放弃lambda而已

y = [1 / (x ** 2 + 1) for x in range(17)]