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))
for result in powerset([1, 2, 3]):
print(result)
results = list(powerset([1, 2, 3]))
print(results)
下面是一个使用生成器的解决方案:
itertools
函数返回iterators,即按需延迟生成结果的对象。可以使用
for
循环遍历对象,也可以通过调用list()
将结果转换为列表:还可以将对象存储在变量中,并使用^{} function 逐个从迭代器中获取结果。
相关问题 更多 >
编程相关推荐