我有一系列连续的整数,例如[1, 2, 3]
。我想创建一个遍历集合的所有子集的迭代器。在这种情况下[], [1],...,[1,2,3]
。我怎么能这样做?
答案 0 :(得分:8)
itertools
documentation包含名称为powerset
的此构造的配方,如果这是您需要的。
from itertools import chain, combinations
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))