生成子集集和未使用的元素
Posted
技术标签:
【中文标题】生成子集集和未使用的元素【英文标题】:Generate sets of subsets plus unused elements 【发布时间】:2021-02-21 21:57:54 【问题描述】:我想要一个 python 程序,它接受一个整数列表并返回一个包含子集的元组列表的列表以及包含第一个子集中未使用的其余值的子集,基本上得到了所有组合的可能性列表中的值。
[1,2,3,4]
应该返回
[[(1,), (2,), (3,), (4,)], [(1,), (2,3,), (4,)], [(1,), (2,) (3,4,)], [(1,), (2,4,), (3,)],[(1,), (2,3,4,)], [(1,2,), (3,), (4,)], [(1,2,), (3,4)]...and so on]
【问题讨论】:
看看这个帖子的答案:***.com/questions/464864/… 【参考方案1】:是的。使用库more_itertools
,这非常容易。您可以使用
for
循环下方写入您的 tuple
级别输出并丢弃不需要的
结果。
import more_itertools
s1 = set([1,2,3,4])
subsubsets = more_itertools.set_partitions(s1)
print(*subsubsets)
subsubsets = more_itertools.set_partitions(s1)
for l in subsubsets:
if l1 != sum(len(k) for k in l):
print(f"l non-compliant")
break
输出(添加额外的换行符)
[[1, 2, 3, 4]]
[[1], [2, 3, 4]]
[[1, 2], [3, 4]]
[[2], [1, 3, 4]]
[[1, 2, 3], [4]]
[[2, 3], [1, 4]]
[[1, 3], [2, 4]]
[[3], [1, 2, 4]]
[[1], [2], [3, 4]]
[[1], [2, 3], [4]]
[[1], [3], [2, 4]]
[[1, 2], [3], [4]]
[[2], [1, 3], [4]]
[[2], [3], [1, 4]]
[[1], [2], [3], [4]]
【讨论】:
以上是关于生成子集集和未使用的元素的主要内容,如果未能解决你的问题,请参考以下文章