Więc mam listę list ciągówPython wszystkie kombinacje listy list
[['a','b'],['c','d'],['e','f']]
i chcę uzyskać wszystkie możliwe kombinacje, takie, że wynik jest
[['a','b'],['c','d'],['e','f'],
['a','b','c','d'],['a','b','e','f'],['c','d','e','f'],
['a','b','c','d','e','f']]
tej pory I mają pochodzić z tego fragmentu kodu
input = [['a','b'],['c','d'],['e','f']]
combs = []
for i in xrange(1, len(input)+1):
els = [x for x in itertools.combinations(input, i)]
combs.extend(els)
print combs
dużej mierze następującej odpowiedzi w this post.
Ale to skutkuje
[(['a','b'],),(['c','d'],),(['e','f'],),
(['a','b'],['c','d']),(['a','b'],['e','f']),(['c','d'],['e','f']),
(['a','b'],['c', 'd'],['e', 'f'])]
i jestem obecnie zakłopotany, próbując znaleźć elegancką, pythonic sposób rozpakować te krotki.
Nice. Często jestem zaskoczony, jak potężne jest 'itertools'. –
Idealny. Dokładnie to, czego szukałem. Dzięki! –