【发布时间】:2020-03-09 08:28:17
【问题描述】:
我是 Python 的初学者(自学)并被介绍给 Lambda(无名)函数,但我无法推断出斐波那契数列的以下表达式(来自 Google),但在线 (Google) 没有关于此的解释被评估(逐步)。这里有很多脑力,我想有人可以帮助我。您能帮助逐步评估并解释吗?
lambda n: reduce(lambda x, _: x+[x[-1]+x[-2]],range(n-2), [0, 1])
提前致谢。
(感谢xnkr,关于reduce 函数的建议已解释,是的,我能够理解这一点,这是我所做的自我培训的一部分,但我不明白这对lambda x 是如何工作的,_:x+ [x[-1]+x[-2]],range(n-2), [0, 1]. 这不仅仅是关于 reduce 的问题,而是关于整个构造的问题 - 有两个 lambda,一个 reduce 和 I不知道表达式的计算结果。下划线代表什么,它是如何工作的,等等)
有人能花 2 分钟来解释一下这里的整个结构吗?
【问题讨论】:
-
我认为这里的问题是理解
reduce,而不是 lambda。你知道reduce在做什么吗? -
是的,DeepSpace,我相信你是对的。但是,考虑到我是 Python 新手,所以我可能在理解 Lambda 方面存在差距(我无法将其分解为单独的参数,嵌套 lambdas 如何采用以及 reduce 采用哪些参数等)和 Reduce 函数以及这个 lambda 表达式整体工作。你能进一步解释一下吗?
-
(感谢 xnkr,关于 reduce 函数的建议已解释,是的,我能够理解这一点,这是我所做的自我训练的一部分,但我不明白这对 lambda 是如何工作的x, _ : x+[x[-1]+x[-2]],range(n-2), [0, 1]。这不仅仅是关于 reduce 的问题,而是关于整个构造的问题 - 有两个 lambdas ,一个减少,我不知道表达式的计算结果。下划线代表什么,它是如何工作的,等等)有人可以在这里花 2 分钟来解释整个结构吗?
标签: python algorithm fibonacci