2014-11-15 59 views
0

我有一個元組列表,並且想創建一個新列表。 使用新列表的最後一個元素(第一個元素爲0)和舊列表的下一個元組的第二個元素計算新列表的元素。Python - 通過沒有最後一個元素的列表

爲了更好的理解:

list_of_tuples = [(3, 4), (5, 2), (9, 1)] # old list 
new_list = [0] 
for i, (a, b) in enumerate(list_of_tuples): 
    new_list.append(new_list[i] + b) 

因此,這是解決方案,但新的列表的最後一個元素沒有被計算。所以不需要最後一個元素。

是否有創建新列表的漂亮方式? 我的解決方法到目前爲止是範圍,但不看,那該多好:

for i in range(len(list_of_tuples)-1): 
    new_list.append(new_list[i] + list_of_tuples[i][1]) 

我是新來的蟒蛇,所以任何幫助表示讚賞。

+0

'new_list [I]'將失敗,除非new_list是隻要'list_of_tuples [:-1]' –

回答

2

您可以簡單地使用slice notation跳過最後一個元素:

for i, (a, b) in enumerate(list_of_tuples[:-1]): 

下面是一個演示:

>>> lst = [1, 2, 3, 4, 5] 
>>> lst[:-1] 
[1, 2, 3, 4] 
>>> for i in lst[:-1]: 
...  i 
... 
1 
2 
3 
4 
>>> 
相關問題