【发布时间】:2018-10-12 11:26:25
【问题描述】:
我编写了一个递归函数来从整数列表中获取所有子集。例如,给定一个列表[1, 2, 3],返回将是[[],[1],[2],[3],[1, 2],[1, 3],[2, 3],[1, 2, 3]]。
这是我的代码:
def subsets(nums):
def helper(subset, i):
if i == len(nums):
print('return = ', subset)
res.append(subset)
else:
helper(subset, i+1)
subset.append(nums[i])
helper(subset, i+1)
subset.remove(nums[i])
res = []
helper([], 0)
return res
我在每次递归中打印出subset,它们是对的。但是,最终返回 res 始终为空。
return = []
return = [3]
return = [2]
return = [2, 3]
return = [1]
return = [1, 3]
return = [1, 2]
return = [1, 2, 3]
res = [[], [], [], [], [], [], [], []]
有人知道为什么吗?欣赏它!
【问题讨论】:
-
您可能对
itertools.combinations感兴趣