如何根据列表中元素的总和在python中拆分列表?

时间:2016-01-25 10:36:37

标签: python-2.7

列表L = [1,2,1,2,2,1,1,2] 根据等于4的元素的累积和将列表L分成子列表。即列表应分为S = [[1,2,1],[2,2],[1,1,2]]

1 个答案:

答案 0 :(得分:0)

我建议使用此代码,但肯定可以做一些改进:

cumulativesum=4
score1=0
S=[]
sublist=[]
for element in L:
    score1=score1+int(element)
    if score1 < cumulativesum:
        sublist.append(element)
    elif score1 == cumulativesum:
        sublist.append(element)
        S.append(sublist)
        sublist=[]
        score1=0
    else:
        S.append(sublist)
        sublist=[]
    score1=0

基本上,对于列表L的每个元素,您将元素添加到子列表中,然后当您到达累积量时,子列表将关闭并添加到S(带结果的列表)。