Open In App
Related Articles

Python | Find fibonacci series upto n using lambda

Improve Article
Save Article
Like Article

The Fibonacci numbers are the numbers in the following integer sequence. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …….. In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence relation

Fn = Fn-1 + Fn-2  with seed values   F0 = 0 and F1 = 1.

Find the series of fibonacci numbers using lambda function. Code #1 : By using lambda and reduce method 


from functools import reduce
fib = lambda n: reduce(lambda x, _: x+[x[-1]+x[-2]],
                                 range(n-2), [0, 1])


[0, 1, 1, 2, 3]

Explanation : The list taking first two parameters is 0 and 1, and add like x[-1] i.e 0 and x[-2] i.e 1 and append to variable x. There is a type conversion to list and due to reduce() method, the same function calls and due to range function this time parameter changes, then add this to previous result and again store it to list.   Code #2 : By using lambda and map function 


def fibonacci(count):
    fib_list = [0, 1]
    any(map(lambda _: fib_list.append(sum(fib_list[-2:])),
                                         range(2, count)))
    return fib_list[:count]


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

Explanation : We are taking the list fib_list which already has 0 and 1. Then in the next iteration, this will be used as input and result of their sum will append to the list.

Time complexity: O(n), where n is the length of fib_list.
Auxiliary Space: O(n), where n is the length of fib_list.

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 25 Apr, 2023
Like Article
Save Article
Similar Reads
Related Tutorials