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

标签 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)>,

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

最佳答案

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

你可以这样做

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/

相关文章:

function - Coffeescript中的多行函数调用

Php - 理解 create_function() - 传递简单变量

带有 Quickbooks Online API v3 的 python

python - 有没有人设法在 Mac OS X Leopard 上为 apache 编译 mod_wsgi?

python - python中的几代gc是什么意思?

python - 如何计算 csv 文件中的行数并忽略未使用的行(使用 python)

c++ - 将带有存储在 std::function 中的捕获子句的 lambda 转换为原始函数指针

c++ - 在函数模板中使用 lambda,无法推断类型,makeSet() 用例

c# - 使用 lambda 表达式在对象的对象列表中搜索?

python - 运行时警告: divide by zero encountered error in matplotlib