我是新來的Python和這些論壇。Python:創建前n個斐波那契數列表
我的問題是:如何在Python中創建一個n
斐波那契數列表?
到目前爲止,我有一個功能,使nth
Fibonacci數,但我想有第一n
纖維蛋白原的列表。未來工作的數字。
例如:
fib(8) -> [0,1,1,2,3,5,8,13]
我是新來的Python和這些論壇。Python:創建前n個斐波那契數列表
我的問題是:如何在Python中創建一個n
斐波那契數列表?
到目前爲止,我有一個功能,使nth
Fibonacci數,但我想有第一n
纖維蛋白原的列表。未來工作的數字。
例如:
fib(8) -> [0,1,1,2,3,5,8,13]
試試這個,遞歸的實現,首先計算先前值的列表返回號碼列表:
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]
這工作得很好,謝謝!我肯定會玩這個有點學習如何在未來的情況下使用這種編碼實踐! – wolfie
下面是使用發電機單向....
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]
感謝您的幫助! – wolfie
可以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
@JTurk真的,不說*謝謝*問題。 –
我不關注,你能解釋一下嗎?這是否與我對這個問題的編輯有關? – labheshr
@JTurk看看[這個問題](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts)。我們真的不需要說*謝謝*。只要接受正確的答案或者上傳它。 –