Python: Creating a List of the First n Fibonacci Numbers

14,713

Solution 1

Try this, a recursive implementation that returns a list of numbers by first calculating the list of previous values:

def fib(n):
    if n == 0:
        return [0]
    elif n == 1:
        return [0, 1]
    else:
        lst = fib(n-1)
        lst.append(lst[-1] + lst[-2])
        return lst

It works as expected:

fib(8)
=> [0, 1, 1, 2, 3, 5, 8, 13, 21]

Solution 2

Here's one way using generators....

def fib(n):
    a, b = 0, 1
    for _ in xrange(n):
        yield a
        a, b = b, a + b

print list(fib(8)) #prints: [0, 1, 1, 2, 3, 5, 8, 13]
Share:
14,713
Admin
Author by

Admin

Updated on June 26, 2022

Comments

  • Admin
    Admin almost 2 years

    I am new to Python and to these forums.

    My question is: How can I create a list of n Fibonacci numbers in Python?

    So far, I have a function that gives the nth Fibonacci number, but I want to have a list of the first n Fib. numbers for future work.

    For example:

    fib(8) -> [0,1,1,2,3,5,8,13]