python - 返回项的 PowerSet 的递归 Python 函数

标签 python recursion nested-lists

我正在尝试调试程序,但遇到了问题。有人可以指导我解决这里的问题吗?

该程序旨在获取项目列表,并返回这些项目的幂集列表。

一个例子:

>>> getAllSubsets([1,2])
[[1,2],[1],[2],[]]

代码:

def getAllSubsets(lst):
    if not lst:
        return []
    withFirst = [ [lst[0]] + rest for rest in getAllSubsets(lst[1:]) ]
    withoutFirst = getAllSubsets(lst[1:])
    return withFirst + withoutFirst

最佳答案

有更好的食谱,是的。但我认为您的代码存在问题,您应该将 return [] 替换为 return [[]]。空集本身就是一个子集。

关于python - 返回项的 PowerSet 的递归 Python 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32406934/

相关文章:

python - 访问嵌套列表中的元素

Python 使用 args 和 kwargs 来验证序列化器中的数据

python - 如何抓取大量推文

python - 在python中使用mysql获取最后两个查询

c++ - 序列的递归跟踪输出总和

python - 将 json 数据转换为 pandas 数据框

python - 如何在保留一些嵌套的同时展平列表(在Python中)

python - PyMC3 中的模型比较

java - 在功能上添加整数列表

java - JSF 中的递归(c :forEach vs. ui:repeat)