我有 2 个输入:
p = 7
s = [2 2 8 1 3]
我知道如何通过 itertool.combinations
获取基本列表子集但我想要的是连续的子列表,每个子列表的元素总和小于 p
.
所以输出将是:
[2],[2,2],[2],[1],[1,3],[3]
这里我有 6 个这样的子列表,每个子列表,sum(sublist) < p
.
最佳答案
试试这个:
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]]
关于python - 从子列表总和小于给定数字的列表创建子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40917829/