2017-04-08 129 views
0

我想在for循環中使用列表的最後一個元素來生成新的元素。這裏是我的問題的玩具例子:如何在for循環中使用列表的最後一個元素?

a = [1] 
    a += [a[-1]+i for i in range(10)] 

但只考慮1個作爲最後一個元素,不補辦環找到了新的最後一個元素。你能告訴我如何解決這個問題嗎?

回答

0

試試這個:

a = [1] 
for i in range(10): 
    a.append(a[-1]+i) 
print(a) 

使用列表理解不會採取在每個新的迭代數組的新的最後的值,但使用正常for循環意志。

+0

我只是不希望有這樣的循環更快地運行代碼。 – user36729

+0

我不認爲這比列表理解慢。你在上面做的事情也是一個循環,只是在列表理解中。 – abagshaw

1

我運行代碼,並得到了如下回答:

In [2]: a = [1] 

In [3]: a += [a[-1]+i for i in range(1,10)] 

In [4]: a 
Out[4]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
+0

否,例如第4個元素應該是4而不是3 – user36729

+1

這是因爲範圍函數會生成0到9,所以如果您從 開始a + = [a [-1] + i對於範圍內的i(1,10 )],你會得到輸出[1,2,3,4,5,6,7,8,9,10] – babu7

相關問題