列表

时间:2016-03-07 09:12:54

标签: python-3.x

我正在编写一个代码来计算旁边数字的总和。

例如,list1 = [10, 20, 30, 40, 50],新列表= [30 (10+20), 60 (10+20+30), 90 (20+30+40), 120 (30+40+50), 90 (40+50)]。 =>最终名单= [30, 60, 90, 120, 90]

目前我的想法是使用for循环,但它完全关闭。

2 个答案:

答案 0 :(得分:0)

您可以使用zip

创建三元组
# pad for first and last triplet
lst = [0] + original + [0]
# summarize triplets
sums = [sum(triplet) for triplet in zip(lst, lst[1:], lst[2:])]

示例:

>>> original = [10, 20, 30, 40, 50]
>>> lst = [0] + original + [0]
>>> sums = [sum(triplet) for triplet in zip(lst, lst[1:], lst[2:])]
>>> sums
[30, 60, 90, 120, 90]
>>>

答案 1 :(得分:0)

查看这个家伙的拼合功能What is the fastest way to flatten arbitrarily nested lists in Python?

获取展开的列表列表的结果,并通常使用for循环或者为集合提供计数实用程序的库来汇总集合。