Если вы умны, и ваш n
больше 1, вы можете использовать reduce
более изощренным способом:
from functools import reduce
def fibonacci(n):
return reduce(lambda x,y: x+[x[-1]+x[-2]], [[0,1]]+[[0]]*(n-2))
Вот как это работает для n=5
:
[[0,1], [0], [0], [0]] ->
[[0,1,1], [0], [0]] ->
[[0,1,1,2], [0]] ->
[[0,1,1,2,3]] ->
stops here and returns [0,1,1,2,3]