生成子集和未使用元素的集合

问题描述

我想要一个 python 程序,它接受一个整数列表,并返回一个包含子集的元组列表列表,以及包含第一个子集中未使用的其余值的子集,本质上是获得所有组合的可能性列表中的值。

[1,2,3,4]

应该返回

[[(1,),(2,(3,(4,)],[(1,) (3,4,4)]...and so on]

解决方法

是的。对于库 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,4]]
[[1],[2,4]]
[[1,2],[3,4]]
[[2],[1,3],[4]]
[[2,4]]
[[3],[2],[4]]
[[1],[3],[4]]
[[2],[4]]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...