python - 我怎样才能找到一个集合的所有子集,正好有 n 个元素?

标签 python

我正在用 Python 编写一个程序,我意识到我需要解决的问题需要我,给定一组 Sn 元素 (|S|= n),在特定顺序 m 的所有可能子集上测试函数(即具有 m 个元素)。用答案产生部分解,然后用下一个顺序 m=m+1 再试一次,直到 m=n。

我正在写形式的解决方案:

def findsubsets(S, m):
    subsets = set([])
    ...
    return subsets

但我知道 Python 我希望解决方案已经存在。

最好的方法是什么?

最佳答案

itertools.combinations如果你有 Python 2.6 或更高版本,是你的 friend 。否则,请检查链接以获取等效功能的实现。

import itertools
def findsubsets(S,m):
    return set(itertools.combinations(S, m))

S:要为其查找子集的集合
m:子集中的元素个数

关于python - 我怎样才能找到一个集合的所有子集,正好有 n 个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/374626/

相关文章:

python - 和有什么区别!和 % 在 Jupyter 笔记本中?

python - 如何将图像导出到 GIMP 中的子目录?

python - 定义字符串时出现关键错误,python

python - 如何从 `sympy.solve` 结果中消除负解?

Python无法识别环境变量

python - 等到几个绿叶中的一个完成

python - 完全独立地从python脚本重启wifi接口(interface)

Python - 用空格格式化 file.write 字符串

python - 使用 SQLAlchemy 元数据 reflect() 如何获得实际的表对象?

python - 在二进制搜索中,为什么 mid = (left + (right - left))//2 比 mid = (left + right)//2 好?