为什么我们不能直接将lambda函数/表达式的输出直接打印为字符串,列表或元组?

eve*_*007 1 python lambda list-comprehension function list

我正在尝试编写lambda function/expression并生成字符串类型输出.我不确定在这个问题上我不理解什么.

我正在使用python 3

实际上,我试图用这个例子来解决另一个问题.我只是提出一个简单的问题来理解,我不了解lambda函数.但是,人们如此急切地想要这个问题.祝你好运智能裤子!

Cel = [39.5, 36.5, 37.3, 37.8]
Fer = lambda x: (float(9)/5*x for x in Cel + 32)
print(Fer)
Run Code Online (Sandbox Code Playgroud)

但是,我希望值列表为:

<function <lambda> at 0x7fafc369eea0>
Run Code Online (Sandbox Code Playgroud)

然后我尝试用lambda映射

[103.1, 97.70, 99.14, 100.03]
Run Code Online (Sandbox Code Playgroud)

为什么,我不能print(Fer or Fer2)简单地作为一个值列表,如:[103.1,97.70,99.14,100.03]

如何在lambda中解决这个问题而不写另一个def function

e4c*_*4c5 6

不太确定为什么你需要lambda这一切都是一个简单的列表理解

Fer = [32+float(9)/5*x for x in Cel]
Run Code Online (Sandbox Code Playgroud)

或者如果你想使用lambda,你将不得不使用map

Fer = list(map(lambda x: (float(9)/5*x + 32),Cel))
Run Code Online (Sandbox Code Playgroud)

因为你正在迭代Fer,你可以省略 list

Fer = map(lambda x: (float(9)/5*x + 32),Cel)
Run Code Online (Sandbox Code Playgroud)

您当前的尝试基本上是尝试混合地图和列表推导.为了进一步详细说明,您在下一行代码中所做的是创建一个lambda函数并将其分配给一个Fer不是您想要的变量.

Fer = lambda x: (float(9)/5*x for x in Cel + 32)
Run Code Online (Sandbox Code Playgroud)