Python-遍历没有最后一个元素的列表

mar*_*004 3 python loops tuples list enumerate

我有一个元组列表,想要创建一个新列表。用新列表的最后一个元素(第一个元素为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)
Run Code Online (Sandbox Code Playgroud)

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

有没有创建新列表的好方法?到目前为止,我的解决方案是使用范围,但看起来不太好:

for i in range(len(list_of_tuples)-1):
  new_list.append(new_list[i] + list_of_tuples[i][1])
Run Code Online (Sandbox Code Playgroud)

我是python的新手,因此不胜感激。

iCo*_*dez 9

您可以简单地使用切片符号来跳过最后一个元素:

for i, (a, b) in enumerate(list_of_tuples[:-1]):
Run Code Online (Sandbox Code Playgroud)

下面是一个演示:

>>> lst = [1, 2, 3, 4, 5]
>>> lst[:-1]
[1, 2, 3, 4]
>>> for i in lst[:-1]:
...     i
...
1
2
3
4
>>>
Run Code Online (Sandbox Code Playgroud)