quindi ho una lista di liste di stringhePython tutte le combinazioni di una lista di liste
[['a','b'],['c','d'],['e','f']]
e voglio ottenere tutte le combinazioni possibili, in modo che il risultato è
[['a','b'],['c','d'],['e','f'],
['a','b','c','d'],['a','b','e','f'],['c','d','e','f'],
['a','b','c','d','e','f']]
Finora sono venuto su con questo frammento di codice
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
in gran parte a seguito di una risposta in this post.
Ma che si traduce in
[(['a','b'],),(['c','d'],),(['e','f'],),
(['a','b'],['c','d']),(['a','b'],['e','f']),(['c','d'],['e','f']),
(['a','b'],['c', 'd'],['e', 'f'])]
e attualmente sto perplesso, cercando di trovare un elegante modo divinatorio per decomprimere quei tuple.
Bello. Sono spesso meravigliato di quanto siano potenti gli itertools. –
Perfetto. Esattamente quello che stavo cercando. Grazie! –