使用 Python 中的 lambda 函数查找斐波那契数列直至 n


斐波那契数列是一个广为人知的数学数列,它解释了许多自然现象。它以 0 和 1 开始,然后不断将一个项添加到其前一项以获得下一项。在本文中,我们将了解如何使用 Python 中的 lambda 函数生成给定数量的斐波那契数列元素。

使用 sum 和 map

我们使用 map 函数将 lambda 函数应用于列表的每个元素。我们设计了一个列表切片机制来获取前两项的和,并使用 range 来计算我们将生成多少项。

示例

 在线演示

def fibonacci(count):
   listA = [0, 1]

   any(map(lambda _:listA.append(sum(listA[-2:])),
         range(2, count)))

   return listA[:count]

print(fibonacci(8))

输出

运行以上代码将得到以下结果:

[0, 1, 1, 2, 3, 5, 8, 13]

使用 reduce 函数

在这种方法中,我们使用 reduce 函数以及 lambda 函数来获取前两项的和。我们必须两次应用 lambda 以及 range 来计算所需的项数并获得最终结果。

示例

 在线演示

from functools import reduce

fib_numbers = lambda y: reduce(lambda x, _: x + [x[-1] + x[-2]], range(y - 2), [0, 1])

print(fib_numbers(8))

输出

运行以上代码将得到以下结果:

[0, 1, 1, 2, 3, 5, 8, 13]

更新于: 2020年8月26日

2K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告