我想在列表中对所有160个元素进行一些组合,但我不想进行所有可能的组合,或者它永远不会结束。我只想要一些,比方说1,2,3,4。
而不是一个接一个地做:
combination = itertools.combinations(lst, 1)
combination = itertools.combinations(lst, 2)
combination = itertools.combinations(lst, 3)
combination = itertools.combinations(lst, 4)
我怎么能做所有4 ???
答案 0 :(得分:0)
这个简单的for
循环怎么样:
comb = []
for i in range (1,5): # (start, end + 1)
comb[i] = itertools.combinations(lst, i)
答案 1 :(得分:0)
您可以创建包含itertools.chain.from_iterable
所有组合的单个迭代器:
combination = chain.from_iterable(combinations(lst, i) for i in range(1,5))
输入较短的示例:
>>> list(chain.from_iterable(combinations(range(3), i) for i in range(1,3)))
[(0,), (1,), (2,), (0, 1), (0, 2), (1, 2)]