如果給你一個(gè)列表,其值為[1,2,2,4,4,0]. 您需要?jiǎng)?chuàng)建一個(gè)函數(shù),該函數(shù)采用整數(shù)列表(正/負(fù))并返回連續(xù)重復(fù)的數(shù)字的總和。我們需要以列表格式返回結(jié)果。上述列表的答案是 [1,4,8,0]。我曾嘗試在 for 循環(huán)中創(chuàng)建一個(gè) while 循環(huán),但完全失敗了。我完全被困住了。def sum_consecutives(lst): n_list = [] total = 0 count = 0for i in range(0,len(lst)): print(sum_consecutives([0, 7, 7, 7, 5, 4, 9, 9, 0]))這個(gè)函數(shù)應(yīng)該輸出[0,21,5,4,18,0].
1 回答

LEATH
TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
分組,然后求和。
>>> from itertools import groupby
>>> [sum(vs) for _, vs in groupby([1,2,2,4,4,0])]
[1, 4, 8, 0]
>>> [sum(vs) for _, vs in groupby([0, 7, 7, 7, 5, 4, 9, 9, 0])]
[0, 21, 5, 4, 18, 0]
group收集相等值的序列,因此groupby([1,2,2,4,4,0])返回類似[(1,[1]), (2, [2,2]), (4, [4,4]), (0, [0])]. (而不是相等項(xiàng)的列表,它為您提供迭代器,但更容易可視化它在具體列表中所做的事情。)
添加回答
舉報(bào)
0/150
提交
取消