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