Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python从具有条件的列表创建列表_Python_Python 2.7_Sum - Fatal编程技术网

使用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])