Python - поиск всех возможных групп элементов в списке - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь найти хороший Pythonic способ найти все возможные комбинации разбиения списка на две группы, как в следующем примере:

my_array = [A,B,C]

Вывод должен быть:

[[[A],[B]]
[[A],[B,C]]
[[A],[C]]
[[A,B],[C]]
[[A,C],[B]]
[[B],[A]]
[[B],[A,C]]
[[B],[C]]
[[B,C],[A]]
[[C],[A]]
[[C],[A,B]]
[[C],[B]]]

Спасибо!

1 Ответ

0 голосов
/ 08 мая 2018

Может быть, это то, что вам нужно:

import itertools

my_array = ['A','B','C']

combos = []

for i in range(1,len(my_array)):
    combos += itertools.combinations(my_array, i)

result = []

for c1 in combos:
    curr = list(c1)
    for c2 in combos:
        if not any(i in curr for i in c2):
            result.append([curr, list(c2)])
result
#[[['A'], ['B']],
# [['A'], ['C']],
# [['A'], ['B', 'C']],
# [['B'], ['A']],
# [['B'], ['C']],
# [['B'], ['A', 'C']],
# [['C'], ['A']],
# [['C'], ['B']],
# [['C'], ['A', 'B']],
# [['A', 'B'], ['C']],
# [['A', 'C'], ['B']],
# [['B', 'C'], ['A']]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...