python - 从子列表总和小于给定数字的列表创建子列表

标签 python list

我有 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/

相关文章:

python - 使用 Python 自动下载嵌入式 PDF 文件

python - 如何在python中使用fileinput保存文件?给出属性错误: 'FileInput' object has no attribute 'read'

python - 根据行值执行计算

python - 根据条件删除列表的重复项

r - 如何获取不同长度列表中项目的频率

.net - 为什么 List<T>.IndexOf() 比 List<T>.Contains() 快很多?

python - 检查是否可以通过给定长度的跳跃来达到一个数字?

python - 如何使用 python 删除 CSV 文件的第一行?

java - 不知从何而来的空字符串。

javascript - 将数组从 Flask 传递到 Javascript 以创建下拉菜单选项