2015-10-25 46 views
1

我是新來的Python和這些論壇。Python:創建前n個斐波那契數列表

我的問題是:如何在Python中創建一個n斐波那契數列表?

到目前爲止,我有一個功能,使nth Fibonacci數,但我想有第一n纖維蛋白原的列表。未來工作的數字。

例如:

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

@JTurk真的,不說*謝謝*問題。 –

+0

我不關注,你能解釋一下嗎?這是否與我對這個問題的編輯有關? – labheshr

+0

@JTurk看看[這個問題](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts)。我們真的不需要說*謝謝*。只要接受正確的答案或者上傳它。 –

回答

1

試試這個,遞歸的實現,首先計算先前值的列表返回號碼列表:

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] 
+1

這工作得很好,謝謝!我肯定會玩這個有點學習如何在未來的情況下使用這種編碼實踐! – wolfie

4

下面是使用發電機單向....

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] 
+0

感謝您的幫助! – wolfie

0

可以acheive它使用清單:

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