我有2个输入:
p = 7
s = [2 2 8 1 3]
我知道如何通过itertool.combinations
获取基本列表子集但我想要的是每个子列表的连续子列表,其元素总和小于p
。
因此输出将是:
[2],[2,2],[2],[1],[1,3],[3]
在这里,我有6个这样的子列表,每个子列表sum(sublist) < p
。
答案 0 :(得分:4)
试试这个:
p = 7
s = [2,2,8,1,3]
ans=[]
for i in xrange(len(s)):
for j in xrange(i,len(s)):
if sum(s[i:j+1])<p:
ans.append(s[i:j+1])
print ans
输出:
[[2], [2, 2], [2], [1], [1, 3], [3]]
答案 1 :(得分:0)