Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.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_List_Sum - Fatal编程技术网

Python 按值对列表求和

Python 按值对列表求和,python,list,sum,Python,List,Sum,我试图用python对一个列表的值求和,但我没有任何运气。最后我想总结出三个值 lst = [100, -1, -2, -3, 100, -1, -2, -3, 100] 100 -1-2-3 = 94 100 -1-2-3 = 94 100 = 100 这个怎么样 s = [] for i in lst: if i > 0 or len(s) == 0: s.append(i) # start a new element in s

我试图用python对一个列表的值求和,但我没有任何运气。最后我想总结出三个值

lst = [100, -1, -2, -3, 100, -1, -2, -3, 100]

100 -1-2-3 = 94

100 -1-2-3 = 94

100 = 100
这个怎么样

s = []
for i in lst:
    if i > 0 or len(s) == 0:        
        s.append(i)     # start a new element in s when element is larger than zero
    else:
        s[-1] += i      # otherwise add it to the last element of s

s
# [94, 94, 100]
或者如果你使用熊猫:

import pandas as pd:
ser = pd.Series(lst)
ser.groupby((ser > 0).cumsum()).sum()

#1     94
#2     94
#3    100
#dtype: int64

您想要lst中不同值的总和吗<代码>总和(集合(lst))是什么使它成为
100-1-2-3
而不是
100-1-2-3+100
?是不是每三件事就触发一次分裂,或者每100个,或者每一个正数,或者其他什么?不,实际上我要找的是,它在列表中循环,求和,直到它碰到另一个正数,然后保存该和,重置计数器,然后继续非常正数镶嵌Heckleri尝试使用While循环并求和值。我尝试了if for循环和if语句。在这两种情况下,只要第一个条件得到满足,客户似乎就会提前退出。我似乎无法让它超越价值。