使用python从条件列表创建列表

Bim*_*rma 0 python sum python-2.7

我有一个名单[7,1,2,2,3,1,2,3,3].所以我们必须创建另一个列表,其中包含如果原始元素是一次然后简单地追加,如果元素多次并且连续然后总结并添加到新列表中.上面列表的输出应该是[7,1,4,3,1,2,6]

任何帮助都很明显.

Sha*_*ger 5

另一种情况itertools.groupby,它在合并相同的值游大:

from itertools import groupby

mylist = [7,1,2,2,3,1,2,3,3]

collapsedlist = [sum(grp) for _, grp in groupby(mylist)]

print(collapsedlist)
Run Code Online (Sandbox Code Playgroud)

哪个输出:

[7, 1, 4, 3, 1, 2, 6]
Run Code Online (Sandbox Code Playgroud)

它汇总了每个相同数字的运行(包括单个值的"运行",因此非重复情况不需要特殊处理),用总和替换运行.