2014-11-15 15 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 
>>> 
相关问题