【问题标题】: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]

【问题讨论】:

标签: python subset itertools


【解决方案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]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 2012-05-09
    • 2020-07-09
    • 2013-08-11
    • 1970-01-01
    相关资源
    最近更新 更多