我目前有一个选择列表:
a = ['D1',
'C1',
'D2',
'C2',
'D3',
'C3',
'D4',
'C4',
'D5',
'C5',]
我想要一个新列表,其中包含可能组合中的嵌套列表。像这样:
b = [
'D1',
'C1',
'D2',
'C2',
'D3',
'C3',
'D4',
'C4',
'D5',
'C5',
['D1', 'C1'],
['D1', 'D2'],
['D1', 'C2']
.
.
['D1', 'C1', 'D2']
.
.
['D1', 'C1', 'D2', 'C2']
.
.
['D1', 'C1', 'D2', 'C2', 'D3']
:
etc
最佳答案
b = []
for len_ in xrange(len(a)):
b.extend(itertools.combinations(a, len_+1)
另见 powerset recipe来自 itertools 文档:
def powerset(iterable):
"powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
s = list(iterable)
return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
关于python - 需要创建一个新的 Python 列表,其中包含另一个列表的所有可能的唯一组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15118741/