2016-03-07 74 views
-2

我正在編寫一個計算旁邊數字總和的代碼。列表中周圍元素的總和

例如,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] 
>>> 
+0

This works thank you! – rprogramr

+0

如果這回答你的問題,你可以接受它作爲答案。 –