我正在編寫一個計算旁邊數字總和的代碼。列表中周圍元素的總和
例如,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循環,但它完全關閉。
我正在編寫一個計算旁邊數字總和的代碼。列表中周圍元素的總和
例如,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循環,但它完全關閉。
您可以通過創建三胞胎使用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]
>>>
This works thank you! – rprogramr
如果這回答你的問題,你可以接受它作爲答案。 –
退房這傢伙的扁平化功能What is the fastest way to flatten arbitrarily nested lists in Python?
以列表的扁平列表的結果並將收集通常與for循環或爲集合提供計數實用程序的庫相加。
與我們分享您的代碼 –