2016-09-08 3 views
2

나는 파이썬에서 값으로 목록을 합치려고 노력하고 있으며 나는 운이 없다. 내가 끝내고 싶은 것은 3 개의 합계 값입니다.값으로 목록 합계

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

100 -1-2-3 = 94 

100 -1-2-3 = 94 

100 = 100 
+0

당신은 LST에 고유 한 값의 합계를 원하는? 'sum (set (lst))' – zvone

+1

'100 -1 -2 -3 + 100' 대신'100 -1 -2 -3'이되는 것은 무엇입니까? 분할은 세 가지 일 때마다 또는 매 100 회 또는 모든 양수로 또는 다른 어떤 것으로 트리거됩니까? – TessellatingHeckler

+0

실제로 내가 찾고있는 것은 목록과 합계를 반복하여 다른 양수가 나오고 해당 합계를 저장하고 카운터를 재설정하고 계속할 때까지입니다. –

답변

2

어때요?

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