我有一个名为[7,1,2,2,3,1,2,3,3]
的列表。所以我们必须创建另一个列表,其中包含如果原始元素是一次然后简单地追加,如果元素多次并且连续然后总结并添加到新列表中。上面列表的输出应为[7,1,4,3,1,2,6]
任何帮助都非常明显。
答案 0 :(得分:5)
又一个案例for 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)
输出:
[7, 1, 4, 3, 1, 2, 6]
它总结了每个相同数字的运行(包括&#34;运行&#34;单个值,因此不需要特殊处理非重复的情况),用总和替换运行。< / p>