【发布时间】:2020-10-03 08:58:27
【问题描述】:
首先请不要将其标记为重复我已经看过另一个问题,但没有一个能解决我的疑问。
我编写了一个代码来为一个看起来像这样的数组生成所有可能的子集,但不幸的是它返回了一个空数组:
def subsets(self, nums: List[int]) -> List[List[int]]:
def fun(subset,idx,nums, current):
subset.append(current)
while idx<len(nums):
current.append(nums[idx])
fun(subset, idx+1, nums, current)
current.pop()
idx+=1
nums.sort()
subset=[]
fun(subset, 0, nums, [])
return subset
让我们说nums=[1,2,3]
我想要的结果:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
我得到的结果:[[],[],[],[],[],[],[],[]]
谁能告诉我哪里出错了?
【问题讨论】:
-
在docs.python.org/2/library/itertools.html#recipes 中查看
def powerset(..),它会以元组形式返回您想要的列表。
标签: python python-3.x list recursion