我正在尝试生成 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)]
关于Python lambda 函数输出 function_main 消息而不是数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59049395/