Python - 遍历列表时排除最后一个元素

12

我有一个元组列表,想要创建一个新的列表。 新列表的元素是通过新列表的最后一个元素(第一个元素为0)和旧列表下一个元组的第二个元素计算出来的。

为了更好地理解:

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)

这就是解决方案,但新列表的最后一个元素不需要计算。因此不想要最后一个元素。

有没有更好看的方式来创建新列表? 我目前的解决方案是使用range,但看起来不是很好:

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

我是Python的新手,所以非常感谢任何帮助。


如果new_list的长度不如list_of_tuples[:-1]长,那么new_list[i]将会失败。 - Padraic Cunningham
1个回答

26
你可以简单地使用 切片符号 来跳过最后一个元素:
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
>>>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接