幂集
返回给定可迭代对象的幂集。
- 使用
list()
将给定的值转换为列表。 - 使用
range()
和itertools.combinations()
创建一个生成器,该生成器返回所有子集。 - 使用
itertools.chain.from_iterable()
和list()
来消耗生成器并返回一个列表。
from itertools import chain, combinations
def powerset(iterable):
s = list(iterable)
return list(chain.from_iterable(combinations(s, r) for r in range(len(s)+1)))
powerset([1, 2]) # [(), (1,), (2,), (1, 2)]