Python: Creating a List of the First n Fibonacci Numbers [duplicate]

ε祈祈猫儿з 提交于 2019-12-10 11:09:57

问题


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]

回答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]



回答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]



回答3:


You can acheive it use list:

def fib(n):
  if n <= 0:
     return []
  if n == 1:
     return [0]
  result = [0, 1]
  if n == 2:
     return result
  for i in xrange(2, n):
     result.append(result[i-1] + result[i-2])
  return result


来源:https://stackoverflow.com/questions/33325683/python-creating-a-list-of-the-first-n-fibonacci-numbers

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!