【发布时间】:2021-12-13 23:33:13
【问题描述】:
这听起来很简单,我尝试搜索解决方案但找不到它因此发布问题。感谢您的帮助,在此先感谢。
我正在尝试使用递归在 python 中打印给定列表/字符串的所有子序列。 以下是我期望的输出:
给定输入列表:[1,3,2]
输出列表:[[],[1],[3],[2],[1,2],[1,3],[3,2],[1,3,2]]
这是我尝试过的:
def printSubsequences(ind,ans,l,n):
final_ans = []
if ind == n:
return ans
else:
ans.append(l[ind])
final_ans.extend(printSubsequences(ind+1,ans,l,n))
ans.pop()
final_ans.extend(printSubsequences(ind+1,ans,l,n))
return final_ans
print(printSubsequences(0,[],[1,3,2],3))
Output of above code: [1, 3, 2, 1, 3, 1, 2, 1, 3, 2, 3, 2]
输出部分正确,因为它不包含[](空子集),但我希望它采用上述指定格式。我也尝试了append 方法,但那是给Output : [[[[], []], [[], []]], [[[], []], [[], []]]]。
我不明白我在这里做错了什么,有人可以解释一下 - 为什么append 失败而extend 正在工作,我怎样才能获得我想要的输出?
【问题讨论】:
标签: python-3.x recursion subsequence