【发布时间】:2015-01-09 20:25:23
【问题描述】:
在生成如下列表时,lambda 函数在方括号外声明,然后应用于每个i,
>>> g = lambda x: x*10
>>> [g(i) for i in range(10,21)]
[100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200]
是否可以(以及如何)在列表中声明 lambda 函数并调用它?
【问题讨论】:
-
第一个猜测:
[(lambda x: x*10)(i) for i in range(10,21)]。你为什么觉得你想这样做? -
你最终会产生缓慢且不可读的代码
-
@enzyme 请注意,短代码并不总是意味着 Python 中的高效代码。
-
你永远不会想要这样做。 lambda 只是一个单行函数,您可以轻松地将其主体放入列表推导式中。
-
将 lambda 赋值给一个变量很少是正确的,但是一堆可怕的 lambda 教程还是这样做了。
标签: python list python-3.x lambda