【发布时间】:2015-12-30 07:32:07
【问题描述】:
我正在尝试编写一个程序,该程序返回列表的所有子集总和的集合。我必须使用列表理解和递归。
例子:
[1,2,3,10]
return set([0,1,2,3,4,5,6,100,101,102,103,104,105,106])
我写代码:
def function(L):
if len(L) == 0:
return []
return list((L[index] + rest) for index in range(len(L)) for rest in function(L[:index])+L[index+1:])
此代码返回子集的总和,但仅返回 2 个或更多元素子集。
示例
[1,2,3,4,100]
返回 [3,4,5,6,101,102,103,104,105,106]
【问题讨论】:
-
一门课程有一些大型的编程作业吗?在过去的 2 天内,我至少看到过 3 次这个问题。
-
是的,这是课程的一部分,但不是更大问题的一部分。
-
你能编辑你当前问题的最后一句话吗? “总和但没有一个或没有元素的总和”?
-
程序不考虑 0 和 1 元素子集
-
所以你的结果中没有 1 个元素或 0 个元素的子集总和对吗?
标签: python python-3.x recursion