![](/img/trans.png)
[英]Python program to print fibonacci series using lambda function in Python
[英]Print Fibonacci Series using lambda and map or reduce in python
注意:我确实在SO上进行搜索,但是只能找到与打印第n个斐波那契数有关的问题。 例如斐波那契数,在Python 3中有一个内衬?
我有以下工作解决方案:
A.使用lambda()+ reduce() :
>>> fib = lambda n: reduce(lambda x, _: x+[x[-1]+x[-2]], range(n-2), [0, 1]) >>> fib(10) >>> [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
注意: 无法使用x.append(x [-1] + x [-2]) 。 给出AttributeError(不知道为什么)
B.使用lambda()+ map() :(必须使用变量作为结果)
>>> result = [0,1] >>> fib = lambda n: map(lambda _: result.append(result[-1] + result[-2]), xrange(n-2)) >>> fib(10) ## Ignore its output ## >>> result ## Stores the result ## >> [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
斐波那契使用reduce()和lambda()
from functools import reduce
def fibonacci(count):
sequence = (0, 1)
for _ in range(2, count):
sequence += (reduce(lambda a, b: a + b, sequence[-2:]), )
return sequence[:count]
print(fibonacci(10))
输出值
(0, 1, 1, 2, 3, 5, 8, 13, 21, 34)
斐波那契使用map()和lambda()
def fibonacci(count):
sequence = [0, 1]
any(map(lambda _: sequence.append(sum(sequence[-2:])), range(2, count)))
return sequence[:count]
print(fibonacci(10))
输出值
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
fibonacci = lambda number: number if number <= 1 else fibonacci(number - 1) + fibonacci(number - 2);
listOfFibonacciNumbers = list(map(fibonacci, range(0, 20, 1)));
print(listOfFibonacciNumbers);
输出:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]
您可以输入20,代替20。 我希望这有帮助:)
您可以使用reduce()和lambda()在斐波那契尝试
def Fib(count):
first =[0,1]
for i in range(0,count-2):
first.append(reduce(lambda x,y : x+y,first[-2:]))
print(first)
Fib(10)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
尝试使用此代码使用LAMBDA打印前10个斐波那契数字
fib = lambda n:如果n <= 1则为n,否则fib(n-1)+ fib(n-2)
对于范围(10)中的i:print(fib(i))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.