Python:将列表中相同符号的相邻数字相加

fra*_*iao -1 python sum list

我必须将列表中的相邻数字相加,如下所示:

ls = [5, -2, -2, 2, -4, -2 ,-2, 7, 3, 1]

输出应该是: [5, -4, 2, -8, 11]

sch*_*ggl 5

使用itertools.groupbysum:

from itertools import groupby

ls = [5, -2, -2, 2, -4, -2 ,-2, 7, 3, 1]

[sum(g) for _, g in groupby(ls, key=lambda x: x < 0)]
# [5, -4, 2, -8, 11]
Run Code Online (Sandbox Code Playgroud)