Skip to main content
 首页 » 编程设计

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

2025年05月04日16wayfarer

我正在尝试生成 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)>, 

我上面的代码做错了什么?谢谢!

请您参考如下方法:

您没有在循环中调用函数。

你可以这样做

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)]