Python |使用 lambda
查找斐波那契数列 up n
原文:https://www . geesforgeks . org/python-find-Fibonacci-series-upto-n-using-lambda/
斐波那契数列是下列整数序列中的数字。
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …… ..
在数学术语中,斐波那契数列 Fn 由递归关系定义
Fn= Fn-1+Fn-2,种子值 F 0 = 0,F 1 = 1。
用 lambda 函数求斐波那契数列。
代码#1:使用λ和归约方法
from functools import reduce
fib = lambda n: reduce(lambda x, _: x+[x[-1]+x[-2]],
range(n-2), [0, 1])
print(fib(5))
Output:
[0, 1, 1, 2, 3]
说明:
取前两个参数的列表是 0 和 1,像x[-1】一样添加,即 0 和x[-2】即 1,并追加到变量 x,有一个类型转换到列表,由于 reduce()
方法,相同的函数调用,由于范围函数,这个时间参数发生变化,然后将这个添加到以前的结果中,并再次存储到列表中。
代码#2:使用λ和映射功能
def fibonacci(count):
fib_list = [0, 1]
any(map(lambda _: fib_list.append(sum(fib_list[-2:])),
range(2, count)))
return fib_list[:count]
print(fibonacci(10))
Output:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
说明: 我们正在取已经有 0 和 1 的列表 fib_list 。然后在下一次迭代中,这将被用作输入,并且它们的求和结果将被追加到列表中。
版权属于:月萌API www.moonapi.com,转载请注明出处