问题描述
我想要一个 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]]