我正在编写一个代码来计算旁边数字的总和。
例如,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循环,但它完全关闭。
答案 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循环或者为集合提供计数实用程序的库来汇总集合。