Python:创建前 n 个斐波那契数列

Python: Creating a List of the First n Fibonacci Numbers

我是 Python 和这些论坛的新手。

我的问题是:如何在 Python 中创建 n 斐波那契数列?

到目前为止,我有一个函数可以给出 nth 斐波那契数列,但我想要第一个 n 斐波那契数列。未来工作的数字。

例如:

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

这是使用生成器的一种方法....

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]

试试这个,递归实现 returns 通过首先计算先前值列表的数字列表:

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

它按预期工作:

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

你可以使用列表来实现它:

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