gpt4 book ai didi

python - 使用 itertools 获取 set python 的所有分区

转载 作者:行者123 更新时间:2023-11-28 19:28:59 25 4
gpt4 key购买 nike

如何获取集合的所有分区?

例如,我有数组[1, 2, 3]。我需要获取 [[1], [2], [3]], [[1], [2, 3]], [[2], [1,3]], [[3], [1, 2]], [[1, 2, 3]]

现在,我写了这段代码:

def neclusters(S, K):
for splits in itertools.combinations(range(len(S)), K):
yield np.split(S, 1 + np.array(splits))

但该代码不返回 [[2],[1,3]]

我可以采用原始集合的所有排列并对它们运行这段代码。但这可以变得更容易吗?

最佳答案

我写这个是为了好玩:

def partition(a_list):
yield [[x] for x in a_list]
for i in range(1, len(a_list) + 1):
_l = a_list[:]
yield [_l.pop(i-1), _l]
yield a_list

my_list = [1, 2, 3]
print list(partition(my_list))

#or

for p in partition(my_list):
print p

关于python - 使用 itertools 获取 set python 的所有分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42704932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com