使用python从具有条件的列表创建列表
我有一个名为使用python从具有条件的列表创建列表,python,python-2.7,sum,Python,Python 2.7,Sum,我有一个名为[7,1,2,2,3,1,2,3,3]的列表。所以我们必须创建另一个包含元素的列表,比如原始元素中的if元素是一次,然后简单地追加,if元素是多次连续的,然后求和并添加到新列表中。上述列表的输出应为[7,1,4,3,1,2,6] 任何帮助都是值得赞赏的。还有一种情况,它非常适合合并相同值的运行: from itertools import groupby mylist = [7,1,2,2,3,1,2,3,3] collapsedlist = [sum(grp) for _, g
[7,1,2,2,3,1,2,3,3]
的列表。所以我们必须创建另一个包含元素的列表,比如原始元素中的if元素是一次,然后简单地追加,if元素是多次连续的,然后求和并添加到新列表中。上述列表的输出应为[7,1,4,3,1,2,6]
任何帮助都是值得赞赏的。还有一种情况,它非常适合合并相同值的运行:
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]
它是对相同数字的每次运行求和(包括单个值的“运行”,因此无需对非重复情况进行特殊处理),将运行替换为求和。还有一种情况,它非常适合合并相同值的运行:
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]
它是对相同数字的每次运行求和(包括单个值的“运行”,因此无需对非重复情况进行特殊处理),用求和替换运行。感谢您的解决方案。你能帮我用一些逻辑(不是内置函数)来得到这个吗。我做了点什么<代码>定义测试(n):sumr=0 listq=[]用于枚举中的x,y(n):如果n[x]==n[x+1]则打印(x,y):sumr+=n[x]继续其他:sumr+=n[x]listq.附加(sumr)sumr=0打印(listq)测试([2,6,7,7,8,8,7])感谢您的解决方案。你能帮我用一些逻辑(不是内置函数)来得到这个吗。我做了点什么<代码>定义测试(n):sumr=0 listq=[]用于枚举中的x,y(n):如果n[x]==n[x+1]则打印(x,y):sumr+=n[x]继续其他:sumr+=n[x]listq.追加(sumr)sumr=0打印(listq)测试([2,6,7,7,8,8,7])